Convert potential numeric values

When validating, php allows strings and booleans to be converted into a
number. Handle that conversion and throw if it cant.

Also, allow for 'min' numeric metadata
Maintain and add all the rules.

Instead of only adding some rules, add all the rules. Only two rules have
to do something else with their value. type is converted to a friendlier
type and primary key with auto set's the 'fixed' rule which prevents the
value from changing.

Added ability for validator to validate against 'required_chars'
Added ability for validator to take validation rules after they've already
been set. (e.g. the validation rules come from the database, the
programmer wants to add just a couple more)