Internal native functions.

All of the functions defined here make direct use of VM functions or data
structures, so they can't be written with JNI and shouldn't really be in
a separate shared library.  Do not add additional functions here unless
they need to access VM internals directly.

All functions here either complete quickly or are used to enter a wait
state, so we don't set the thread status to THREAD_NATIVE when executing
these methods.  This means that the GC will wait for these functions
to finish.  DO NOT perform long operations or blocking I/O in here.
These methods should not be declared "synchronized", because we don't
check for that flag when issuing the call.

We use "late" binding on these, rather than explicit registration,
because it's easier to handle the core system classes that way.

The functions here use the DalvikNativeFunc prototype, but we can
also treat them as DalvikBridgeFunc, which takes two extra arguments.
The former represents the API that we're most likely to expose should
JNI performance be deemed insufficient.  The Bridge version is used as
an optimization for a few high-volume Object calls, and should generally
not be used as we may drop support for it at some point.

