to$q accepts optional success/fail callbacks; if present, adds a $q.then(success, fail)