Consider stride more when determining fb size.
Recreate framebuffers when they get bigger.

To avoid cases where they remain too small, and to make sure size always
matches up sanely.
Blit framebuf contents when resizing.

This avoids a blink when sizing up.
Cleanup some old comments/code.
Don't allow a zero framebuf stride in estimation.
Take the tallest estimate, scissor may be short.

Even if it's wider but short, it should not reduce the height of the
buffer.
Stop stretching things to the FBO size.

Instead, draw in the top corner.  This way, even if framebuffers get
smaller things stay consistent.
Correct widths in stencil upload too.
Force 481x273 to 480x272, it's seen in a few games.
When clamping height to 512, try region/scissor.
Relax display buffer / GetVfbAt() requirements.

Castlevania actually uses a display buffer of 420, it seems.  Since we no
longer allow multiple FBOs at the same address, this should be safe.
Merge pull request #6211 from unknownbrackets/framebuf-estimate

Another attempt at framebuffer size estimate changes