Synchronous timewarp: Revamp to detect neccessity of adding extra frames

- Automatically detect when an additional frame will need to be inserted before the next refresh, specifically on the frame that will need it, instead of just inserting one every n frames
- Don't enable audio tweak unless framelimiter is set to > 60
- Clarify (and increase default) vsync tweak value
- Replace old static pullup options with a single automatic pullup
- Solve issue feilen#2

The way that inserting additional timewarped frames is ordinarily supposed to work is by inserting one exactly when you know the next frame isn't going to be rendered in time. Though the old system worked with 30->60FPS pullup, it only really did so because it always needed an additional frame and didn't ever have to determine that.

This determines each frame whether the next frame will be ready before the Rift refreshes (and whether it can get Timewarp done in time, via the timewarptweak variable) and inserts one where neccesary.

I have not yet ported this over or been able to test with D3D, but at this point it shouldn't be more difficult than copying over my changes to OGL/Render.cpp.

I think that the Opcode Replay could also very much make use of something like this, by either keeping track of frame times itself, or using the Rift's timing mechanics.

The only potential bug I've encountered so far is that this uses the real refresh rate, rather than the gamecube's intended refresh rate. That means that when dolphin's FPS drops below the intended target for 60FPS games, this will try to insert more than just a single timewarped frame, which can stagnate the FPS until you catch up. This is a similar issue to when your computer couldn't keep up with synchronous timewarp before, except instead of stuttering every fourth frame it'll stutter every frame, until you get out of the graphically complex area.