add `Action.canUndo` and make the action's `Undo` constructor args [optional]

first step towards #4
adding a null or non-undoable action to a transaction throws ArgumentError

step towards #4
Schedule : add support for doing non-undoable actions (they are not saved in history list or affect it)

this is for #4 ; we should write some more complex tests
CHANGELOG updated regarding non-undoable actions
Merge pull request #6 from rmsmith/nonundoable_actions

Nonundoable actions