Make numItems work more like isOptional validator

This pull request makes `numItems` validator work more like `isOptional` validator.

When you add a `numItems` we now just set the variable on the `Chain` instance and the actual values are checked and enforced inside a `isArray` or `isHash` validator.