Introducing PhoneGap support

When satellizer is used inside PhoneGap there's the issue that the app isn't
actually running from any web server, but rather just from file:// url, lucky
to us PhoneGap built-in web browser provides with an events listener on popup
windows, which we can capture to get the expected behavior.

The solution is based on the code that hello.js uses, but it has been
refactored, for example it reuses the logic provided by satellizer for error
handling, and promises all over the place.