Start implementing proper IPC protocol for Invoker

So far invoker use hastily put together gets/puts for
exchanging messages between processes. Lets replace
that with proper JSON based protocol.
Replace SLOP with Thor

I really like Thor's way of command line option
parsing and hence replacing it.
Finish implement a command hierarchy for incoming message

Implement separate command classes for handling
incoming JSON messages to Server and sending responses.
This will give us much better flexibility in
extending invoker.
Implement proper protocol for json serialization

I figured Yajl does blocking read in blocks of 8092 bytes
and hence it will always block unless other end writes JSON
and closes the socket.

Lets implement proper JSON protocol for it.
Fix invocation of start task without explicit command name
Delay loading of DNS and balancer related files until fork
Fix invalid argument in reload command message
Fix bug with default command overriding version option
Add missing 'eventmachine' dependency
Fix UnixClient.send_command with correct method call
Fix style issues with code
Require all the require files on top rather at bottom of ipc.rb
Merge pull request #56 from code-mancers/implement-json-ipc

Implement json ipc