Cleaned up hooks a little bit. Removed beforeDelete and beforeDestroy; to simplify things a bit. Synonyms aren't necessary. Added checks to addHook(name, fn) and clearHook(name); must correspond to a valid hook.