Correct validation event order and backward compatible save() method 

In addition to issue #147
- validation correctly hooked after creating (beforeCreate) and updating (beforeUpdate)
- save() is now compatible with Eloquent