Updated code to use protected abstract methods instead of throwing NotIm...

...plementedException from the explicit implementation of three IMigrationMetadata properties in the Migration class.