add integer range validation

This gives the ability to add validation for integer values.
* type: "integer" - no range validation
* type: integer[RANGE] where RANGE can be:
 * NUM - only allow the single value
 * MIN.. - validate minimum only
 * ..MAX - validate maximum only
 * MIN..MAX - validate min and max
 * .. - no min or max
 * empty - no min or max

Positive and negative numbers are accepted, no decimals or commas.  If RANGE is specified where MIN is greater than MAX then no values will be accepted.  If MIN or MAX is not a valid integer it is ignored.

This is related to issue #970