modularize command subsystem

make it obvious and easy how to add a new command. use spray-json protocol
to parse a json string into a command.
modularize message subsystem