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.
Better error message for book.json type errors
More error handling when parsing book.json

When the JSON contains a duplicate key, JSONObjectWithData on iOS 5.1 will return nil. Unfortunately, the returned error is not very helpful, but it's at least better than the previous version of the code (which was printing the error in the wrong place).
See #904.
Merge commit '69d19f2e74d27a2ed1adb29154a6d49e5f855531' into newsstand_notification
certificate changes