Convention over convention: enabling provider conventions

Enable provider-specific conventions by allowing override of ConventionModelBuilder.
Add ModelBuilderSelector so that the convention model builder used can be determined by DI.