Make enamldef objects pickable

This enables a developer to implement appropriate `__getstate__` and `__setstate__` methods on their enaml objects to make them pickable. This functionality is demonstrated by updating the workbench example to persist the dock area and its child dock items when the workspace is closed, and restore them when it is opened.