Update the way Callbacks work

Callbacks now inherit from a shared abstract ToxCallback class that carries a JTox instance. Assigning a JTox instance is mandatory, as the field is final and uninitialized by default.
Reflect changes to bootstrapping in our API.

In addition to that, we now have a function that conveniently creates a byte array out of a string for us. This should only be used for messages. For things like IP-Addresses and Tox-IDs,
we can continue to use Strings, as they consist of only ASCII characters, which are encoded correctly even in Java's internal UTF-8 mechanisms. The byte array should be used solely for
purposes where there might be unicode that needs to be transmitted.