streamline sbt usage from different projects

This removes all the different instances of the sbt launcher and places
it into `sbt/sbt` where all of the (Scala) projects using sbt can access
it. Additionally, all the projects use a common ivy cache which should
speed up compiling and running the tests and decreases disk space used.
Merge pull request #279 from jrudolph/one-sbt-launcher

streamline sbt usage from different projects