More allocation code optimizations.

- Inline Class::AllocObject() and Array::Alloc().
- Inline some short Mutex functions and add LIKELY/UNLIKELY to some
  Mutex functions.
- This change improves the Ritz MemAllocTest by ~6% on Nexus 4 and
  ~10% on host.

Bug: 9986565
Change-Id: I1606c74ddb21676cbc1de1a40e9b076fc23eaea4
Remove memory leaks

Change-Id: I13a74791b1d39edfbba7c7884057fa163c343a9a
Improve promotion of double-precision regs

Minor rework of the double allocation mechanism to more explicitly
manage the allocation of preserved floating point single pairs as
doubles.

Change-Id: Id9db4b0e86e5ef54a5db587f367e00efdf7e98d6
Improve float to integral conversion.

Change-Id: I1597083cb2c04084ce825fe2e3c753fde8309cd8

Conflicts:
	runtime/interpreter/interpreter_goto_table_impl.cc
	runtime/interpreter/interpreter_switch_impl.cc
Avoid std::string allocations in HasSameNameAndSignature.

Creating a signature requires a std::string that's only used for the purpose of
a comparison. Avoid the std::string by comparing the elements of the method's
proto_ids.

Change-Id: I4394df2ac20bb5896936954f68937fad7e9f7e91