feat($q): add isPromise, isResolved, isRejected to $q