Making Serve and CRX downloading work more robustly.
Stop the context menu from injecting multiple times.

Otherwise this causes an infinite loop on KitKat, since loading more
scripts triggers onPageFinished to fire again, which triggers injection
of the context menu again, etc.
Update AppHarness to modern MCA, which expects to be loaded with file://

Also required fixing the remapped paths a bit. CRX apps are loading
correctly now.
Update file handling code to modern File plugin (post Ian's refactoring)
Add support for Push plugin.
Only run push-related code when the plugin exists.