adding basic-java-client

Implements basic features.
added functional test, KeepAlive and some abstraction changes

Along with some cleanup.