Validate is only called from save method if the model has not been validated.

Even if the `validate()` method was called, the `save()` method would still call `validate()` again, which is unnecessary.  `save()` now checks if it is valid.  If it is, it bypasses the validation processed in the `save()` method.