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.
When things like this random reordering and removing the debug stuff are in the same commit as substantive changes, it's harder to tell what's going on.