Removes jQuery dep where not needed
Creates a promise module to separate from jquery
Uses promises module instead of $.Deferred where it's the only dep