Fix potential sync issue with hardware encoders

Instead of the video just buffer using the 'buffering time', make it
properly interleave and wait for audio data to come in before it sends
out data.
Readd 'set base resolution', add warning popup

This button was originally added as a convenience feature for users who
liked to stream certain windowed games (especially retro games) at a 1:1
pixel ratio without having to constantly fiddle with the settings or
figure out exactly what the window client rectangle size was for the
target.

However, some less knowledgable users would press this button without
knowing specifically what it does, causing some support issues.  I've
readded the button, but with a big warning box that will pop up warn the
user and ask for confirmation.

However, this problem will have to be solved better in the rewrite.
Having this in the software capture sources is not an adequate way of
dealing with the problem.  There needs to be some way to save custom
resolutions in the rewrite so you can easily switch between them.  There
also needs to be a way to copy the resolution of a window or window
client rectangle, and it really shouldn't be in the window capture
source properties I think.
Keep unmuted volume values if volume muted

If a volume control was muted, the hidden 'unmute volume' value was not
saved to the configuration, meaning that if you exit while muted then
restart, it would unmute to 100% each time, causing annoyance for some
users.