Separate Client and Internal Server interfaces

* Separate the "Client Side" Server interface from the "Internal" interface. Essentially this is just send() vs invoke(). A Client should never call invoke, but should call send().
* Add ServerBuilder for a short way to setup a Server
* Add basic tests for ServerBuilder and Server interface
* Some general cleanup