Validators added: integer, string, boolean, in-range

Added four more validators.

`integer` - needed to avoid decimal values, which are passes number validator
`string`/`boolean` - if we get some untrusted data and it must match the type, also useful for api clients validation to skip and not process broken requests
`in-range` - member is not acceptable for range checking, because it is slow for wide ranged (-1e9, 1e9) and doesn't handle decimals `(valid? {:rating 3.7} :rating [[member (range 5)]]) => false`

Few tests added and doc updated as well.