Update widget.py

all widgets now have '_content' attr. This makes it a bit easier to manage.
parent can now be a 'NoneType'. setting an invalid parent raises Exception or AttributeError