[Validator] Add an integer constraint and validator

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature? |  yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none that I'm aware of
| License       | MIT
| Doc PR        | will be added when this PR gets approved

Who would think it's so hard to write a validator for an integer that works with both `int` and `string` types like `1` and `'1'`. That's why I decided to add this validator to the core.
@cordoval it cannot be part of the stable API before it is merged (and we generally only mark it as part of the stable API only in the next release than the one implementing it)