add optional description attributes
replace warnings with exceptions
update docs
add ExecutionEvent type
update docs and add 'description' attribute
update command handling. replace warnings with exceptions.
add lifecycle methods to the Workspace class
add classes for contributing menu and action items
rename location -> menu_location
update documentation and command handling
convert warnings to exceptions and code cleanup
indent with spaces
indent with spaces and add support for menus
add support for menus
update imports
add custom enamldefs for menu handling
cleanup naming
add support for action shortcut and invoke command on a deferred_call
add support for actions and menus in the menu bar
add a menu order solver helper

this helper uses kiwi to solve the constraints implied by the 'before'
and 'after' attributes on MenuItem and ActionItem objects.