Move code generator into its own subproject

This makes it easy to define different binary compatibility policies
for the code generator (which is only used at compile-time) and the
rest of Slick. The new policy is clarified in the manual and links are
provided to all four scaladoc bundles (slick, slick-testkit,
slick-codegen, slick-extensions).

Review by @cvogt.

I think we should prioritize this for 2.1.0 over getting more code generator improvements in. This modularization will enable us to easily improve the code generator in point releases. I've moved everything from scala.slick.model.codegen up to scala.slick.codegen and into the new subproject. Is there anything else in scala.slick.model that should be moved over to slick-codegen?