Add numeric range validators for decimal and integer types.

This adds range validators for the following MySQL types: decimal, tinyint, smallint, mediumint, int, and bigint.

- Do we want to support validating scale? E.g. `1.234` will not be valid of a money column.
- Do we want to support floating points?
- Do we want to support unsigned integers?

@byroot @yagnik for review.
This assumes signed integers.