S-Express: S-Exp serialisation framework

I hereby extend [Greenspun's 10th rule](http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule) to Scala.

*Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.*

I went a wee bit overboard. This patch includes a shapeless-powered S-Expression serialisation framework based heavily on [spray-json](https://github.com/spray/spray-json) (but with lots of generics to reduce boilerplate). @sirthias may be interested to look at this and discuss further offline - I have some more to say about the shapeless work, see my PR over at https://github.com/milessabin/shapeless/pull/262

I have only moved over our config file parser to use this, but in tandem with #681 this will make changes to the protocol **a hell of a lot easier**. Also, when backported to 2.10, we can depend on `ensime-server` from `ensime-sbt` to share a common domain model for the configuration.

Also, some updates to random third party libraries.
All these tests have embedded newlines, they get turned into \r\n when checked out in Windows (depending on git settings). As a result, tests may fail in Windows.   I'll commit a fix to my branch tonight.