Improve java.nio.Buffer.toString.

Bug: https://code.google.com/p/android/issues/detail?id=53637
Change-Id: I823662b39cb48b5f4456f4c58269324dfcdc2fd1
Simplify the nio Buffer implementations, and fix MappedByteBuffer.

* Fix the reported bug caused by delegation in the MappedByteBuffer
  implementation.

* Collapse the three classes (ReadOnly*, ReadWrite*, and *) used
  to implement most buffer types into one class each.

* Rename HeapByteBuffer to ByteArrayBuffer to match its companions.

* Remove BaseByteBuffer.

* Give the classes used to implement asXBuffer sane names (their
  existing names were backwards).

Bug: https://code.google.com/p/android/issues/detail?id=53637
Change-Id: I2a7ff4f1d502564389615384324afadabccb04f9
Remove dead NioUtils.getDirectBufferAddress.

Change-Id: I764d86db1d74c5daf54cc925a9fc76db15a1107a
Use longs instead of ints to store pointers in NIO buffers.

This allows the code to be used on 64-bit VMs.

Change-Id: I4d01bfcd0ffea528c6179687771d047fdcb4d18a
Use long instead of int for address in DirectByteBuffer constructor

This allows the code to be used on 64-bit platforms.

Change-Id: I1c42d48696296f74135cd209b3042b8973779e40
Fix BufferedReader.readLine to not read ahead after '\r'.

Bug: 8778372
Change-Id: I789d0ff5498cca48b16bb7b3b363014f7b6bcf95
Offer default implementations of various dalvik intrinsics in the library.

(cherry-picked from commit 2f95766aac3df74c6c641232eec4791b2330c9df)

Change-Id: I1005ee22ed8a017bb536bfd76df2173c7e8dcf64