DSound: use DSound notifications to produce sound.

Pretty straightforward; IDirectSoundNotify lets you register for
notifications after a certain amount of sound has played, so use that
instead of depending on Update() notifications from the CPU thread.

Also, while I'm here, reduce the buffer size by a factor of 4; this seems
to reduce the latency, although the difference is sort of subtle.
Disable SDL input on Windows.
Remove SDL from Externals.
JIT: unify JitAsm for JIT64 and JIT64IL.

Having a bunch of nearly identical code sitting around isn't a good idea,
so fix that. JITIL had a couple of extra entry points into the JIT main
loop, so adjust the code appropriately.

Also fixes Issue 7186.
DVD emulation: make seek timing more accurate.

Based on real measurements of a Gamecube disk on a Wii.  (If anyone else
is interested in running more tests, I can upload my code; it's a mess at
the moment.)

This isn't a complete model, but it's a step in the right direction:
in Metroid Prime, the loading times are sane, and I think I managed to do it
without breaking anything.
DVDInterface: tweak buffered reads to be a bit faster.

A read finishes when the result is complete in the drive's buffer, not
main memory.
DVDInterface: code cleanup.
Opcode decoding: 0xC0 isn't a valid command.

Fix our opcode decoders to handle this appropriately.
Fixes games that use the MMU to page in code(Rogue Leader).

The issue was that on memory exception we wouldn't call in to PPCAnalyst and our code_block would retain the previous blocks information.
This would cause us to compile the previous blocks instructions in prior to the exception exit.
Opcode decoding: handle missing opcodes 0x88 etc.

Hardware testing shows that they do the same thing as the 0x80 family of
opcodes: they draw quads.
Video backends: fix rounding in lighting computation.

For whatever reason, the hardware doesn't do a full divide by 255, but
instead uses an approximation with shifting, similar to the way it is done
in TEV.
Possibly an OSX buildfix.
Export wii saves to the "User" directory
OGL/VertexManager: Remove unnused m_CurrentVertexFmt
make IOCTL_SO_GETHOSTID more accurate on Windows
remove unused and unexported function
Merge pull request #354 from magumagu/gx-primitive-mask

Opcode decoding: 0xC0 isn't a valid command.
Merge pull request #366 from Jezze/vertex

OGL/VertexManager: Remove unused variable.
Merge pull request #375 from degasus/remove_SkipVertices

VertexLoaderManager: Remove unused function.
Video backends: fix behavior of "konst" TEV inputs.

Also fixes TEVCOLORARG_HALF.

Values verified to match hardwarere.