Fix false view diffs
MySQL compresses the spaces between the AS keyword and the select statement,
so we need to parse at least that far.
Marking a column as primary implies a non-null default, even if you asked for one previously
When altering constraints, separate the drop from the add.
Add schema validation as a feature
Whenever possible, produce error messages rather than exceptions
Fix false event diffs
Events are tricky to handle right, for two reasons:

1) STARTS and ENDS can be expressions in your SQL but are stored in MySQL as
absolute dates, computed at the insert time.

2) We instantiate a status of DISABLE ON SLAVE such that when we're done
it's set to ENABLED in MySQL. This is a weirdo local DBA custom that can
probably be done away with.

This fixes both of these, by storing STARTS and ENDS as metadata, since
MySQL won't round trip them for us, and treating DISABLE ON SLAVE in the DB
you're migrating to as equivalent to ENABLED in the one you're coming from.
Merge pull request #253 from iarna/fix-view-event-diffs

Fix view and event diffs
Merge pull request #254 from iarna/fix-constraint-changes

Fix constraint changes
Merge branch 'iarna-schema-validation'