Allow tables to be resized and accessed as FloatBuffers

These functions expose additional functionality to the Java domain. Tables may be resized. And instead of reading and writing to them via a Java-array intermediary, they may now be accessed directly as `java.nio.FloatBuffer`s. Finally, the ability to execute a generic `Runnable` in a thread-safe way has been added, ensuring that the audio thread is not running.
I'm concerned about the real-time implications here. The methods of libpd are generally written in such a way that they only take the lock outside of Java, and only for very short operations.

This one would be a deviation from this pattern because the runnable might do arbitrarily complex things and cause glitches. And even if we assume that developers will only pass in computationally cheap runnables, I still wouldn't trust Java with the native lock because the garbage collector might decide that this is an awesome time to do its thing and freeze everything for umpteen milliseconds.