Put .sbtserver in .gitignore
Add how-to-run-terminal stuff to README.md
JLineReader: Move choice of ExecutionContext to where we have a basis

This EC shouldn't be passed in, because it's an implementation
detail (it isn't used to invoke code provided by the caller).
Log various JVM info to master.log on startup

The main thing that might aid debugging is the JVM options,
but went ahead and just dumped most of the stuff in the
runtime bean.
Split SbtClient into a raw SbtChannel and the current SbtClient

SbtChannel is just the basic connection; it doesn't cache stuff
or track state. Just one level above ipc.Client, it does
the initial registration and lets you use callbacks instead of
threads if you want.

Not in this commit, but implied by it, is an API break where
SbtConnector will give you the channel only, and then you
do SbtClient(channel) if you want the client.

Also implied by this is a future path where we make SbtClient
track even more state.

The general idea is that we can make SbtClient its true self
(very convenient, but perhaps a little bit heavy), while
also making SbtChannel its true self (just the raw protocol).
Keeps the code a little tidier too since there are now fewer
low-level socket concerns in SbtClient.
Fix a deprecation warning in RequestLifeCycle.scala
Remove dedicated thread from SimpleClient

The thread in SimpleChannel is good enough, nothing is gained
by adding another one in between.
Implement SbtConnector in terms of channel not client

Now open(SbtClient => Unit) is a trivial convenience wrapper for
openChannel(SbtChannel => Unit), and subtypes of SbtConnector
just implement openChannel and don't need to mess with client.
Bump both deps and build.properties to sbt 0.13.6-RC1
Remove all implementation from SbtClient, SbtChannel, SbtConnector

Keep these as pure interfaces only to simplify future ABI
maintenance.

This commit is intended to have no semantic changes just move the
implementation around.
Merge pull request #181 from sbt/wip/havocp-misc

A few minor misc things
Merge pull request #183 from sbt/wip/havocp-136-rc1

Bump both deps and build.properties to sbt 0.13.6-RC1
Replace SbtChannel.claim() with claimMessages()

This atomically adds a listener and starts the event thread,
which ensures the listener will not miss any events.
Ensure that when adding message handlers, they ALWAYS get a ClosedEvent
Make LogEvent a trait with TaskLogEvent/CoreLogEvent subtypes

This means the taskId is never 0 - with no task we have to
use CoreLogEvent.

This paves the way for log events tagged with something other
than a task ID, such as a background job ID or whatever.
Merge pull request #182 from sbt/wip/havocp-sbt-client-split

Split SbtChannel out of SbtClient
Merge pull request #184 from sbt/wip/havocp-log-event-trait

Make LogEvent a trait with TaskLogEvent/CoreLogEvent subtypes
Upgrade to 0.13.6-RC2

Both our own build (and thus the plugin) and also the dependency
AutoPlugin-ify ui-interface and prototype BackgroundJob feature

This is very rough and incomplete, but trying to sketch out
how to make a backgroundRun task work with ability to monitor
the status of background tasks.
Move background thread machinery into BackgroundJobManager

This allows us to lifecycle-manage a hypothetical thread pool which
we are about to add.