Added Lua functions for JSON encode/decode
Configuration options for output

Escape key can clear the command line quickly.
Command history up and down with arrow keys.
Fixed save/discard for profile settings

Settings editor also now switches to default form when switching/closing
profiles.
Specific check for empty name on profile settings
Fleshed out event handlers some more

Cleaned up bits of code, such as unnecessary includes, forward
declarations, and methods.
Abstract classes have protected constructors and operators now.
Timers will now fire and execute.