Error message for failed openURL call

This will return an error message when a call to a URL such as twitter://post?message=hello%20world fails because the appropriate app to handle the scheme is not available.
Wrapped up hpub unpackaging into a block executed on a background thread
Added JS event on URL error

The event will be dispatched when a URL cannot be opened because no external application can handle it (e.g. 'twitter://').
Example of catching the event:
window.addEventListener("urlnothandled", function(event) { alert(event.url); });

See #862.