Changed GameState::UnjoinPlayer to actually follow its own comment and unjoin the player from STATSMAN first, instead of unjoining from PROFILEMAN, then STATSMAN, then PROFILEMAN again.  Changed ProfileManager::UnloadProfile to skip unloading if the profile wasn't actually loaded in the first place.
Switching to double style shouldn't join the other player.  It isn't necessary for input, the engine ScreenSelectMusic doesn't do it, and it forces a theme with custom SSM and style changing to unjoin the player that wasn't really joined.
Save/LoadProfiles

ScreenProfileLoad and ScreenProfileSave do nothing except use their own
lua methods to run GameState functions. Those functions might as well be
available as GameState methods.
luadocs

added lua documentation
StartTransitioningScreen

Exposes the StartTransitioningScreen function to lua. Great utility for
custom screens.
Merge pull request #111 from sigatrev/StartTransitioningScreen

StartTransitioningScreen
Merge pull request #110 from sigatrev/Save/LoadProfile

Expose Save/load profile to Lua. This deprecates ScreenProfile{Load,Save} completely, but those are going to be left in until post-5.0
FFMpeg: Fix uninitialized AVFrame, which led to crashes with recent version of libav and ffmpeg
Merge pull request #112 from lthls/master

FFMpeg: Fix uninitialized AVFrame
Merge pull request #96 from kyzentun/UnloadProfile_optimization

Unload profile optimization