Throw an exception when migrations are missing the MigrationAttribute.
If the class does not have a parameterless constructor or it is
abstract, exclude it from the migrations altogether. Addresses #31.
I've not run your new code but the rationale looks sound, and if it prevents a scenario where a migration is silently skipped while still supporting sub-classing, it sounds like a win-win.
Throw an exception when migrations are missing the MigrationAttribute. If the class does not have a parameterless constructor or it is abstract, exclude it from the migrations altogether. Addresses #31.