NEW: Form action handlers can now do custom validation by throwing ValidationExceptions.
NEW: ValidationResult can now store field-specific errors.
NEW: You can pass a string error message to the ValidationException constructor.

API: The session variables that Form uses to keep track of messages/validation have changed.
API: Form::validate() now throws a ValidationException rather than merely returning false.