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.