Wip/jsuereth model view server

Let's merge my branch back into the mainline WIP.   Then, the rest of the team can run their experiments on their own WIP branches and I can safely push additions to my own without breaking everyone.

To clarify:

`wip/model-view-server-api` becomes the "feature" branch where we target all sbt-server commits.  We synch to this branch to see the latest.
`wip/jsuereth-model-view-server-api` becomes my own personal "patch" branch where i can issue pull requests for review.
`master` will eventually receive the sbt-server updates once we're feature complete on the server.

Architecture: https://github.com/sbt/sbt-remote-control/wiki/Architecture-2.0
TODO list: #55 


Review by @havocp and @skyluc (cc> @dotta @dragos @eed3si9n )