some code cleanup, and addition of contextMenu test
manifest updates for version bump and permissions request
added context menu support to chrome background page
added context menu support to safari background page
added context menu support to firefox background page

fixed history service problem (accessing deprecated version)
whitespace cleanup and lint related cleanup

addition of contextMenu option

adjusted how callbacks are cached/created and handled, using random IDs rather than sequential array because some extension architectures give back IDs for certain things (e.g. a newly created event or hook) and it's easier to handle when you're able to use an arbitrary ID rather than having to use the next available array index and then keep track of that ID somewhere.