added a on() action, to handle phantom events.

Allows a user to attach callback to Phantom's page events.
https://github.com/ariya/phantomjs/wiki/API-Reference-WebPage#callbacks-list

Added tests, but for some reason the alert, prompt, and confirm event tests cause phantomjs to crash. However, they all work fine in normal usage. I have no idea what the issue is. Perhaps someone more familiar with phantom can figure it out.
can we just pass in the callback directly rather than wrapping it in a function?