Performance tweaks and tidy up.

Please review the work in this PR first: https://github.com/orchestrate-io/orchestrate-java-client/pull/32

Another change I could add to this PR is to cache the `uEncoder` in a `ThreadLocal`, do you think there'll be a worthwhile performance gain with this change?

@housejester ping :smiley: