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).