Android jholder rewrite

Also adds lots of documentation.

See 1cc1462044136fd2f88f2a44bdbd876283c22e2b for the bulk of the change.

This fixes several problems with our jni usage.

@davilla: This should fix the vector deref problem you mentioned a few days ago. Possible to test?