Flexible message handling at remote protocol layer.

Separate handling, routing and implementation of remote commands at the protocol layer. 

```ProtocolHandler``` receives a message and delegates handling to ```MessageBroker``` who dispatches it to handlers that are subscribed to a particular ```method``` (property that comes in the body of the message to keep existing convention). Additionally a ```send``` method was included to allow handlers sending messages to the Editor side without having to invoke transport directly.

Existing ```Runtime.evaluate``` handler has been moved to a separated object which now subscribes to messages of that type.


Would be nice to call this variable `msgHandlers` to avoid confusion with the variable from the upper scope (and potential bugs).