Add more event types to support dock events
add a dock events enabled flag to the dock area
add support for forward dock events to the declaration
add support for dock item visibility events

This support collapses rapid changes in visibility into a single
notification.
move the visibility event handling to the dock item

This was required to accurately track visibility events when a dock item
is maximized in the dock area.
add support for extended and retracted events
Post the undocked events at the proper times
post a docked event at the proper times
update method names
add an item closed event
add support for the item closed event

This also updates dock item to not emit a hidden event while the item is
being closed. The closed event itself is sufficient.