Port OpenJDK8 changes in java.util.Map

& add tests.

The CL add tests for map default methods added in Java 8 - getOrDefault,
putIfAbsent, remove(K, V), replace(K, V, V), replace(K, V), forEach,
replaceAll, compute, computeIfAbsent, computeIfPresent, putIfAbsent,
merge.

Methods have been made synchronzed in Hashtable. They are using the
default map methods instead of taking the upstream changes.

Replace(K, V, V) in LinkedHashMap has been  overridden as it doesn't
record access when the replace method doesn't make any replacement.

Bug: 27426743
Change-Id: Ie27ea5bd42ddbfa751b89f9eacfb290a3d69f4bb
2 files changed