Add Promise service tests

Add tests for the Promise service

Also simplify the debounce tests by running tests inside the `inject()` function, so no need to do `$timeout = _$timeout_` malarky.

Ready for review @lrbecker  / @bradgreens 
:+1:  :rat: