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.