Work around Java's modified UTF-8

All strings that may contain UTF-8 characters now use byte arrays instead of Strings. Utility methods for the conversion are supplied.
Undo ToxFriend API

This was a bad idea. Clients should handle this on their own, so they can implement their own logic on Friends without being restricted by this API
Implement byte arrays for callbacks

Same reason as with the rest, we need to handle byte arrays instead of strings so they can be handled correctly by the API.