EXI/Memcard Accuracy

Originally based off [Booto's Branch](https://github.com/booto/dolphin/commits/exi-test).
This [datasheet](http://justanothercoder.com/~booto/DSA-543837.pdf) was also used to base some of the information off of (although, not a lot of it as the device is very different it seems).

This [spreadsheet](https://docs.google.com/spreadsheets/d/1W2BfG27hU7kKPvPIhiHNREb6z7GT2d2zZeKK53ph6lE/edit#gid=0) contains "data" from some of the memory cards we tested on hardware (accuracy of the tests may not be that great).  This Wii [DOL](https://dl.dropboxusercontent.com/u/61045381/MemCardDemo.dol) was used for these results (there was a GameCube version of the DOL we ran, but it had same results).

JMC47 tested other features that could be affected by exi-timings, such as BBA and GC microphone.  The GC microphone works identically to before original read/write speed changes now.  BBA was never affected by any of this, and continues to function the same.

exi-accuracy is meant to fix the regressions (MGS: The Twin Snakes and MegaMan X Collection slowdowns) created by my previous PR,  while tightening up the timings further on reads and writes.
If there is only one field left, no point having a struct.