Make ModuleAdapter implementations stateless (incompatible codegen change)

By passing module instances in on getDependencies() (and using that to prime the Provides method bindings, ModuleAdapters can be stateless, and then cached, avoiding the need to re-load them via classloading.

This change (as is) renders Dagger incompatible with previously generated adapters, so will require a version bump and notice when we announce the next release.