That is to say, MV_PERFECT can be applied in singleplayer, but that doesn't update your best rings on the map in record attack, so the thing being yellow doesn't make sense if your rings are (none). Therefore, make it a two-flag, two-bit process.
* Prevent an infinite quantity of Emeralds being spawned when P_GiveEmerald is called while a MP Special Stage is in session (resolves#347).
* Fix FuriousFox's ridiculous timer on special stage spawn (mentioned in the comments of the previous issue) by correctly marking spectator players in special stages as finished, and preventing the underflow.
* Move the visitation flags, Record Attack/NiGHTS Attack data, and emblem checking to outside of Y_StartIntermission.
* Y_CleanupScreenBuffer never got called for maps which skip the intermission, leading to a small memory leak; this is now fixed by moving it to G_AfterIntermission.
* Y_FollowIntermission was just G_AfterIntermission with modeattacking specific behaviour, but this is desired for all places where G_AfterIntermission is called, so just merge this into G_AfterIntermission.
Notably, these changes are necessary because there are now three maps in the main SP campaign which do not end with traditional intermissions. As a result, this fixes an issue where Black Core's tracks are not available in the Sound Test (due to MV_BEATEN never being applied).
Also, since I was here: Remove "gotperfect" from recorddata_t. This is a duplicate of `mapvisited[gamemap-1] & MV_PERFECT` which uses more memory. I have kept the new spacing in the gamedata for compatibility with RC1 savedatas, but moved it across to the original method everywhere else.
* Moved levelname parsing to before where uppercase conversion occurs.
* Extended titlecard font range.
* Replaced misc. "ZONE" strings with "Zone" for titlecard purposes.
* Don't convert to uppercase when rendering the titlecard name.
Signed-off-by: Nev3r <apophycens@gmail.com>