added more robust service creation with type-safe responses, injected service handlers, and a service registry to faciltate pure-ruby RPC without coupling it to any particular communication strategy (TCPSocket, RabbitMQ, etc) or application architecture