Move connections and script injection to protocol

Move connection management from LiveDocument to LiveDevProtocol:
- clients is now an optional parameter to invoke remote calls. If it
isn't present protocol will broadcast messages to all active clients.
- Connection.[connect|close] events are triggered for each new and
closed connection.
- Session.[start|end] events are triggered when the first client gets
connected and when the last connection get closed.

Move remote script injection from LiveDocument.onConnect to
getRemoteScripts.

On top of #20, #21 and #22.
Not submitted to upstream, still under development