Improve detection of CloseGuard protected resource leakage

* Add CloseGuardMonitor to intercept and collate CloseGuard reports and if
  necessary throw an exception listing the resource leaks.
* Add ResourceLeakageDetector to abstract away the CloseGuardMonitor which will
  not work on RI.
* Add AbstractResourceLeakageDetectorTestCase as a base class for tests
  that need to detect resource leaks, in future this could be handled by
  modifications to Cts and Vogar test runners.
* Remove CloseGuardTester and its sole usage in ProcessBuilderTest.
* Remove CloseGuardGuard from within URLConnectionTest
* Change ZipFileTest, ZipInputStreamTest, ZipOutputStreamTest,
  ProcessBuilderTest, URLConnectionTest to use new mechanism, fix issues that
  are identified and do some cleanup/remove duplicated code.

Bug: https://code.google.com/p/android/issues/detail?id=66383
Change-Id: Id026dbb6bc66091a15f07329e6371cd0d1f32cf5

Conflicts:
	luni/src/test/java/libcore/java/util/zip/ZipFileTest.java
	luni/src/test/java/libcore/java/util/zip/ZipInputStreamTest.java
Support explicit + in Byte, Short, Integer, Long.

Bug: 5239391
Change-Id: I2b25228815d70d570d537db0ed9b5b759f25b5a3
Remove Zygote.fork

Currently unused, all callers use forkAndSpecialize.

Change-Id: I61df8ed88d7657da8280e044fe99517c47ce8dff
Change DecimalFormat.setRoundingMode() behavior to stay in spec

The serialization tests revealed that some DecimalFormat instances
could not be round-tripped. The reason is that the setRoundingMode()
method was setting a non-zero rounding increment, which cannot
be persisted, and also creates patterns that are outside of the
DecimalFormat spec.

Addressed the fact that ICU4C appears to support
RoundingMode.UNNECESSARY now by deleting special-case code.

Changed SerializationStressTest to use canonical DecimalFormat
patterns:

The ones chosen had a couple things that were not ideal:
1) Putting '-' in quotes causes ICU (for non-obvious reasons)
treat the negative pattern prefix as not being default. Default
in this case means "the positive prefix with a preceding '-'.
Removing the quotes meant it would recognize the pattern as
not needing everything after ;., so the pattern would be shrunk.
2) The positive pattern was also not one ICU could deal with
fully. ICU changed "#.#" to "#0.#" at parse time (which can be
corrected with a setMinimumIntegerDigits(0)). It's not clear why
ICU cannot deal with parsing "#.#" when it can produce it, but
there is a long comment in decimfmt.cc suggesting it is
intentional and to avoid format producing empty strings.

The pattern has been changed to one that ICU can handle and would
choose when the various serialized fields are read back. This is
necessary because NativeDecimalFormat compares the patterns and
not just the serialized fields. Leaving the pattern check part of
equals() means that two non-spec patterns will not be considered
equal(), which is important while Android allows non-spec patterns.
Restricting support in DecimalFormat to the documented subset of
characters is not worth the effort and may cause problems
elsewhere.

Change-Id: I2de588458b86619733c0dc1692d526f179059910
Bug: 11668227

Conflicts:
	expectations/knownfailures.txt
	harmony-tests/src/test/java/org/apache/harmony/tests/java/io/SerializationStressTest.java
	luni/src/main/java/java/text/DecimalFormat.java
Change result order of getDeclaredFields

ART reports declared fields in another order than Dalvik.
The method is java.lang.class.getDeclaredFields(). Its javadoc allows
any order but Dalvik reports static fields first followed by instance ones.

This patch makes ART to be compatible with Dalvik's order.

Change-Id: Id43acb8aca7ec264b2808f5ec773c930be93b030
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>