Cadbury's Options: just 40 calories per cup! (Updates to DbContextOptions)

This change looks big, but a lot of it is trivial changes to naming. The significant changes here are:
- Collapse DbContextOptions and DbImmutableContextOptions into one class
- Allow for generic DbContextOptions so that different options can be created for different contexts
- Get this options object from the service provider if it one is available. This will theoretically work with the options stuff happening elsewhere