remove unnecessary Type(...) wrapping
cleanup the docklayout implementation

This removes the [as|from|_dict methods and now relies on the fact that
the layout is pickable for serialization.

It also makes use of the (now performant) typed atom lists for
validation.
request a relayout after shuffling items

The Object class will not emit a child event since no children have been
added or removed. So, an explicit layout request is required.
update error message string
update docstring
set margins on the layout instead of the widget.
set margins on the widget instead of the layout

The QFrame base class may reset the widget margins at run time. Applying
margins to the layout is the safer way to ensure that they don't get
changed out from under us.
apply the normal state at proper times

This updates QDockContainer and QDockWindow to revert to the normal
"showNormal" geometry state when being reset.
cleanup unused import
update handling of maximized entities

This updates the manager to properly save and restore layout state for
maximized items. It also disallows docking onto a dock area with a
maximized item in order to maintain an intuitive user experience.