Prevent context from being used in OnModelCreating and OnConfiguring (Issue #565)

Also Issue #943: Make DbContext.OnModelCreating publicly accessible

Just added a public static method for calling it. This is not easily discoverable and so should not cause much confusion but allows ModelSource to be implemented without access to internals.