SetGame method

Added SetGame method to GameManager.

Altered Stepmania::ChangeCurrentGame() to allow a second input,
selecting which theme will be loaded after game is changed.
SetGame lua docs
Merge branch 'SetGame' of https://github.com/sigatrev/stepmania into ChangeGame
Created GameLoop::ChangeGame analogous to GameLoop::ChangeTheme.  Changed ChangeTheme to use the AfterThemeChangeScreen metric instead of a passed in screen name from the theme being changed away from.  ChangeGame uses the AfterGameChangeScreen and AfterGameAndThemeChangeScreen metrics to pick the screen to load after the change.  New metrics are optional and default to InitialScreen.  Changed ScreenManager::ThemeChanged to not duplicate the code in ReloadOverlayScreens.  Fixed ScreenManager::IsScreenNameValid to check with HasMetric before using GetMetric.  Changed game ConfOption logic to set the preference and work in a similar way to the theme ConfOption.  Added THEME:SetTheme lua function.
Added revalidation scheme to NoteData's all_tracks_iterator so that it can be made valid again after the NoteData is transformed by something adding or removing steps.  This fixes the crash on courses that use transform mods on the second song.  ITG2's Getting Started is an example.
UpdateSongPositions

It is useful to have Player SongPositions update off of ScreenGameplay
for use with things like ArrowEffects.

ScreenGameplay, ScreenHowToPlay, and ScreenEdit stop GameSoundManager
from running GameState:UpdateSongPosition and do it themselves, so this
has no impact on the screen classes that cared about, and thus updated,
player SongPositions.
Enums for TapNoteType, TapNoteSubType, and TapNoteSource

I intend to make additional useful information available on judgments,
such as TapNoteType and TapNoteSubType( for hold judgments ).

I am submitting this part as a separate pull request because it is more
generally applicable to anything TapNote related.
updating luadocs
Merge pull request #231 from kyzentun/ChangeGame

SetGame
Merge pull request #236 from kyzentun/RevalidateNoteDataATIs

Added revalidation scheme to NoteData's all_tracks_iterator
Merge pull request #240 from sigatrev/UpdatePlayerSongPositions

UpdateSongPositions
Merge pull request #244 from sigatrev/TapNote-enums

Enums for TapNoteType, TapNoteSubType, and TapNoteSource