Fix promise rejection

fixes #3013
- bubble promise rejection on post model validation/save error so that it doesn't bubble as resolved
- prefer `.catch()` for promise handlers as per recommendations
- check if .save() is being called from model.destroyRecord() and forgo validation if so