Add `before_validation` callbacks

This adds `before_validation` callbacks so a model can hook
into and modify itself before validations are run. This follows
AR's callbacks and provides more flexibility and features when
defining model behavior.
Merge pull request #21 from redding/jcr-before-validation

Add `before_validation` callbacks