Removed the circular references and make use of the Fifechan isVisible() function. fixes #841 and fixes #794
Overhaul the ownership distribution of Widgets. Changed the widget parent and content to weakrefs. Manager got a set to hold all Widgets. Replaced managers show/hide functions with add/removeTopWidget(), that makes more sense.
Overhaul the show/hide functions of Widgets and Container. Instead of widgets _visible flag the Fifechan isVisible() function is used. They are also used to add/remove Widgets to/from the Pychan Manager.