Throw error when {begin,abort}Transaction is called outside of transaction

Signed-off-by: Nathan Sobo <nathan@github.com>
Throw error when {undo,redo} is called in a transaction

Signed-off-by: Nathan Sobo <nathan@github.com>
3.6.1