One thing we could do is leave `AggressiveCompile` alone, and provide a new API.  In fact, we could put everything that SBT needs into one method on the companion object, and have the instance just do cache reading/writing, and delegate to the companion object.