Don't allow starting recording in states that will cause a crash or other problem.
Place bundled SFML include paths before others

This allows to build with bundled SFML when system SFML (of another
version) is installed
Rename Log2 and add IsPow2 to MathUtils for future use

Also remove unused pow2/pow2f functions.
JIT64: optimize multiplication by immediate constants

Factor out common code and handle a few more common cases.
JIT64: optimize rlwinmx/rlwinix and friends

Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
JIT64: Optimize cmpXX

Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
JIT64: optimize sign/zero-extend

Also remove some comments that no longer apply since x86_32 was dropped.
JIT64: avoid using LEA for adds when not necessary
JIT64: use LEA for the "a = b + imm" case of addi
JIT64: use xor instead of mov for loading a zero regcache immediate
JIT64: tweak srwx/slwx BindToRegister arguments

Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
JIT64: Optimize carry handling

Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
JIT64: optimize some special cases of srawix

Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
JIT64: support merged branching for rlwinmx, too

Not quite as common a branch instruction as cmpwi, but close.
JIT64: optimize carry calculations

Omit carry calculations that get overwritten later in the block before they're
used. Very common in the case of srawix and friends.
Don't switch to a vertex array object of 0.

This causes glDrawArrays to fail in core profile, and thus on OS X, see:

http://renderingpipeline.com/2012/03/attribute-less-rendering/

There must be something bound, even though it is not used.

Fixes #7599.  I'm not sure this is actually the best way to fix it,
since AFAICT it makes a nonobvious assumption that *something* will be
bound before the first attributeless rendering in
TextureConverter::DecodeToTexture, but it's what degasus suggested and
seems to work.
JIT: implement frsqrte

Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
JIT: implement fres

Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
Work around Intel's failings with with buffer_storage
JIT: completely inline timer reading

Should be a bit faster on games that heavily use the timer.