Dalvik: DMB Optimisation

Replaces use of 'dmb' and 'dmb st' with inner-shareable versions.
This should improve performance in certain cases without harming
correctness.

Change-Id: Id30f58b93b34bf0e232bb01dc3956a82f7a69c40
Dalvik: DMB Optimisations for TracingJIT

Makes DMB domain ISH or ISHST instead of the implicit System.
ISH (Inner Shareable) should be sufficient for all cores/clusters,
but is not sufficient for GPU or other memory-mapped peripherals

Change-Id: Id159228daba97bc3692d2eb1ee2786bae2ee34a7
Fix a couple of minor publicly-reported GC bugs.

An assertion was incorrectly assigning rather than testing, and
there was the usual buggy attempt to recover from failure rather
than just aborting in the HeapSource.cpp dvmHeapSourceStartup.
(The Copying.cpp dvmHeapSourceStartup by contrast will just
segfault if an allocation fails, but that's fine too.)

Bug: https://code.google.com/p/android/issues/detail?id=61562
Bug: https://code.google.com/p/android/issues/detail?id=61563
Change-Id: I237a6f923a07d61709f99ab67c9a18dbc7e6c839