Initial implementation of validation based on 

This is a basic implementation of the ideas we discussed before about automatically validating database constraints. This implementation simply inspects the schema of the class, and creates validators based on the column definition.

- NOT NULL constraint: **PresenceValidator**. Note: this is slightly different than the database constraint, because it checks for `.blank?` instead of `.nil?`. Is this OK?
- VARCHAR column (with length)? **LengthValidator**. Note: a TEXT column will not have a `limit` set, so no validator will be added. However they are still limited by the DB. Do we want to do some magic here?

One thing to note is that the validators are created lazily, i.e. the first time a record is validated. This prevents leading the schema of the table at boot time.

@fw42 @byroot @jduff for review. Do we want more constraints? Configuration options? Test coverage?
I added this test to show that the `PresenceValidator` is slightly different than a NOT NULL constraint.