improve dependency-checking using new Classycle feature

namely the dependentOnlyOn keyword. before we had to implement
something like this ourselves and it was more convoluted
add more library checks to dependency checker
avoid using scala.util.Random

no big deal, but might as well avoid the dependency
use target dir not tmp, seems more sbt-ish

there are many more places this change probably should be made, but
just doing a few for now. nbd either way really