improve(undo): undo redo key binding are registered in the feature

this should be the default behaviour, this might be customizable in the future
refactor(commandstack): seperate commandstack from undo feature

the commandstack is an important internal feature which is independent
from the undo functionality itself (which just triggers stack operations)
this makes the undo feature also more configurable in the future
Merge branch 'commandstack' into messaging
feat(command stack): refactor + bendpoint movement

Refactored command stack
- uses tested PositionableStack now

Add bendpoint move command
- bendpoints can be moved and unmoved