Cleaner steps for register, unregister, getRegistration

* Less verbose, no need to refer to resolver.
* Use DOMException, not DOMError.
* It's not ok to reject a promise without arguments, always provide a DOMException.
* Resolve unregister promise with PushRegistration.

For more background details see the Promises Guide:
https://github.com/w3ctag/promises-guide

This fixes issue #4.
The spec does not know why the AbortError was thrown. It could be because the UA failed to modify storage, in which case perhaps it can also not remember that unregister was called. I think your suggestion is possible, but I'd rather avoid having maybe-maybe-not non-normative notes. You're welcome to file an issue for this so we can further explore the ramifications of black-box system errors. The behavior should then also be consistent across the spec.