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.
This isn't tail recursive, it'll blow up the stack on long lists won't it?