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.
[Android] Fix a bunch of input bugs.
Looking at the old code for the ButtonManager was a brainfsck. This fixes a ton of bugs I kept uncovering as I was moving along.

Fixes the gamepad configuration file being incorrect.
No longer treats touchscreen in a special way. Ends up as a regular device with a "Touchscreen" device name.
Was incorrectly converting a index from integer to ButtonType. Wouldn't work due to the addition of some unused(in JNI) enumerators in ButtonType.
Fixes an issue where a map had a key as an axis which was causing its binding to be overwritten for every axis that was used twice (eg main stick left and right);
Fixes Triggers not working at all.
Fixes DPad not working at all.
Fixes C-Stick only half working.
Removes touch screen specific nativelibrary types onTouchAxisEvent and onTouchEvent.

Adds a configuration version configuration option. Allows easy configuration overwriting if the options need to be changed during updating.

Supersedes github PR #291.
Use accurate frsqrte in Interpreter.

The implementation of frsqrte exposed by this change isn't completely
correct; that will be fixed in a later commit.
Interpreter: make fres match hardware.

New table-based implementation written based on actual hardware behavior.
(hwtest coming soon).
Check for errors when reading lines from ini files.

Fixes issue 7283.
Limit netplay chat messages to 2000 characters.

There's not really a good reason to be sending messages longer than that, and very long messages can hang dolphin for quite a long time.
Jit: get rid of incorrect implementations of fres and frsqrte.

The existing implementations produce answers which aren't consistent with
the hardware, and games care about correct floating point math.

These can be reimplemented at some point in the future, if someone cares
enough, but the general case is probably too much code to inline.

(I'm leaving the ARM implementations in place by request, even though they
suffer the same issues.)
Interpreter: refactor the rsqrte code, and use it for ps_rsqrte.
New frsqrte implementation; verified accurate.

This is similar to the old implementation, but it uses smaller tables, and
handles more edge cases correctly.  (hwtest coming soon.)
Jit: Use infinity and NaN from numeric_limits.

MSVC's implementation of INFINITY is unusable.
Interpreter: Code style fixes.
Merge pull request #256 from magumagu/dsound-notify

DSound: use DSound notifications to produce sound.
Merge pull request #390 from magumagu/fp-reciprocal

Add accurate implementations of frsqrte and fres
Interpreter: use numeric_limits instead of FLT_MAX.

Minor cleanup, and fixes compilation on some systems.
BS2 emulation: set up a reasonable BAT during startup.

It doesn't really matter much at the moment given our current terrible MMU
emulation, but it will start mattering once our MMU emulation gets more
accurate.
Gameini updates.

Various changes.
Gameini updates.

Change Nes games efb scaling to 1x. Also fix issue 7314.
Fix a struct overflow case in WII_IPC_HLE_Device_hid.cpp

WiiHIDDeviceDescriptor is 20 bytes in size (2 of which are padding bytes)
libusb_device_descriptor on the other hand is 18 bytes (does not have the
2 padding bytes).

So we were pulling 20 bytes out of an 18 byte struct, which isn't really
correct.
Merge pull request #407 from lioncash/hid-overflow

Fix a struct overflow case in WII_IPC_HLE_Device_hid.cpp
Use a bool instead of an int to represent the initialized state in IOWin.cpp