Get memory for direct byte buffers from the Java heap rather than the native heap.

Since the removal of tracked external allocations, there's been no accounting
of direct byte buffers. This fixes that, and moves us to a much simpler
situation where the GC is responsible for this memory too. It also means that
we don't need finalizers: now only memory-mapped blocks need finalizers (to call
munmap(3)).

Change-Id: I6b43f74074e496eeb2a36b620af19e4926ceb8cf
tree: 4b825dc642cb6eb9a060e54bf8d69288fbee4904

This tree is empty.