Fixed bug where numeric, non-integer strings were passing as integer.
If object is new, run all validations on save, as objects built through create() or hydrate() don't pass through set(). Made ValidModel abstract.