Merge pull request #1 from melmothx/master

Added EmailValid and PasswordPolicy to Data::Transpose
Stub and boilerplate code

Anyway, the t/validation.t file should give an idea of how the validator
is supposed to work.
Plugged in the EmailValid module, subclassing it
Plugged in the password policy module (subclassing it)
Cleaned up the EmailValid module, giving it proper accessors

So we can call ->error("Error") to set it :-)
Completed the l33t table on PasswordPolicy

Having the numbers missing would match too many things
Made "is_valid" from PasswordPolicy behaviour compatible with EmailValid

If an argument is provided to is_valid, it will call ->password, setting or
overwriting the current password.
PasswordPolicy will reset the errors when is_valid is called

It really doesn't make sense to have the error stashed from an
old session or an old password.
Validator::PasswordPolicy is just an alias for the parent class

Now that accepts is_valid with an argument, no need to override
the is_valid method
Password Policy now stores the errors as an array

Each element is an arrayref of two element, error code and error string

When error is called in scalar context, we return the concatenated strings

When called in list context, we return the whole array.
Added tests for error strings and error codes.
Fixed returning value of checking algo
Evaluate $obj->error in list context to get the full details
Minor fixes to t/validation.t
Store the ordering of the fields and let ->prepare to accept arrayrefs too
Support the subrefs as validators

Also, moved the common functions to DTV::Base (error handling)

When a subref is passed as validator, we build an object out of
DTV::Subrefs, which will provide the right methods for the main
transpose loop.
Fixed class option passing
PasswordPolicy now accepts both an hash or an hashref as ->new args
Don't clone the schema (will complain with subs) but don't delete keys

If the user will reuse the schema and we delete the keys, the schema
will break
Added accessor for options in Validator