Replaced every use of lua_call with RunScriptOnStack.  Modified RunScriptOnStack to report an error to log and system message using a passed in context string.  Modified every use of RunScriptOnStack to avoid crashing so that the reported error can be seen.
Made Screen not go to next screen if the screen name is empty.
Changed many uses of Dialog::OK and LOG->Warn to use ReportScriptError.
Rewrote ScreenSystemOverlay overlay/default.lua to be able to display multiple messages.  Added Reload Overlay Screens option to debug menu.
Moved error reporting to ScreenSystemLayer error.lua.  ScreenSystemLayer overlay/default.lua restored to previous.  Error messages are now broadcast with the ScriptError message instead of SystemMessage.  Added show/hide error messages toggle and clear error messages to debug menu.  Nuked ScreenConsoleOverlay for being unfinished and duplicating ScreenSystemLayer.  Changed Actor:tween and Tween::CreateFromStack to use ReportScriptError on invalid tween params.  Changed some OptionRowList things to use ReportScriptError on invalid metrics.
Changed many places that used RageException to use ReportScriptError instead.  Wrote ScreenOptionsExample.ini as documentation example for the OptionRow system.  Rewrote gamecommands.txt to include all GameCommands.  Fixed Commands::GetOriginalCommandString to insert the semicolons that separated the original commands.  Changed nonsensical boolean |= true statements in GameCommand.cpp to just use =.  Added protection to ReportScriptError to keep it from recursing through itself when an error occurs in error reporting.  Added UseAbort option to ReportScriptError for places that want to use an AbortRetryIgnore dialog to query the user.  Added ScriptErrorMessage for places that need to handle the warning/dialog part separately.  Added logging flag to MESSAGEMAN so that all messages broadcast can be logged when desired.  Changed OptionRowHandler::LoadInternal to return a boolean success value as part of error handling.
Changed many parts of GameCommand to improve error reporting.  Fixed GameCommand setpref to not set when loading the command.  Minor fix to ScreenOptionsExample.ini to explain that SongInCurrentSongGroup is unusable.  CommonMetrics, CourseContentsList, HoldJudgent, OptionRowHandler all have minor changes to fix crashes on malformed theme data.
ActorUtil::ResolvePath updated for error reporting.  Changed BitmapText to work with either a font name or a path.  ThemeManager::GetPathInfoRaw fixed to use correct error dialog.  ThemeManager::GetPathInfo fixed to report correct error for missing theme elements.
Changed NoteSkinManager to use new error reporting and avoid crashing.  Fixed DoChangeTheme to switch to the InitialScreen if the screen doesn't exist in the theme being changed to.  Fixed error reporting in MeterDisplay.
Tested and fixed error reporting for NoteSkinManager.  Changed Sprite::Sprite() to load the default texture.
Created Def.LogDisplay for displaying messages in a log.  Changed error reporting layer to use Def.LogDisplay.  Changed engine error reporting to not clip errors to a single line.
Added Common Error font for use by error reporting so that themes that replace Common Normal won't have a problem.
Merge pull request #218 from kyzentun/ErrorReporting

Better Lua Error Reporting