Rewrite panel without legacy APIs and overhoad of complexity!

This is still work in progress....

This fixes following long standing bugs:

- Bug 795490 - panel.contentURL change doesn't swap out the visible page in a panel
- Bug 819578 - Panel should not inject style on each show 
- Bug 727767 - Closing Firefox with Panel open causes an exception in nsIFrameLoaderOwner.swapFrameLoaders
- Bug 777821 - make panel subclassable

Makes it very easy to fix other long standing bugs:

- Bug 678257 - Add the ability to anchor a Panel to content 
- Bug 678238 - close one panel when another panel opens