fixed missing php open tag
Updated ValidationFailedException signature

The ValidationFailedException constructor now expects the ValidationRule
(which throw the exception) to be passed and referenced.
Cleaned up example for more clarity
Added email validation