Compile analysis take two

@corruptmemory , apologies for all the churn; I talked to @jsuereth about some issues and just wanted to get this done today while you were out. Once I started to mess with it it was easier to break it up than mess with the whole thing at once. I tried to keep your github creds on the big commits.

This PR includes https://github.com/sbt/sbt-remote-control/pull/194 so feel free to review https://github.com/sbt/sbt-remote-control/pull/194 separately and then review this one.

I don't have scalacheck stuff in here, just to keep it separate. It should be layered in next. I think I found a working way to remove a lot of the additions to DynamicSerialization, the lazy vals, and the Implicit prioritization, so that keeps the patch smaller.

Other than those items, I think either this plus the earlier PRs today incorporate the stuff from https://github.com/sbt/sbt-remote-control/pull/190

From here we could strip out some of the stuff we want to keep private, and there are also several TODO in this patch, but I believe this is a working checkpoint that should be easier for @jsuereth and/or @gkossakowski to get a handle on as we evolve it.