Added LuaMode.
Added Events dock to LuaMode, New/Open Lua File to Welcome Mode, etc.
Added commands/shortcuts to the File menu (close, close all, revert).
Make sure to switch the current document when switching modes.
Clear the modified flag after saving a LuaDocument.
Added syntax checking to Lua editor.
Added undo/redo actions for LuaMode.

QPlainTextEdit does not expose it's QUndoStack, so it can't be added to the
QUndoGroup.
Implemented "Revert to Saved" (for Lua documents only).
Fixed a case where connections weren't updated after changing a node's label.

NodeInputGroupItem::updateLayout() detects changes in scene bounds of inputs,
but that method is called before the NodeItem has updated its bounds. Ditto
for NotOutputGroupItem.
Fixed the improper height of ScriptVariablesView.

1) Issue with the widget's font not being what was used by the item delegate.
2) horizontalScrollBar()->height() returns 30???