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.

For more background details see the Promises Guide:
https://github.com/w3ctag/promises-guide
Can we use PermissionDeniedError - https://www.w3.org/Bugs/Public/show_bug.cgi?id=23033?