Fix various filenames in copyright comment.
Put proper header guards for r4300 *.h files
Pure Interpreter has its own header now.
Put cached interpreter into its own module.
Put instruction counters into its own module.
Prefer memset instead of hand-made for loop.
Move TLB to r4300 directory.
Put CP0 into its own module.
Put CP1 into its own module.
Move current_instruction_table to r4300.h
Remove unused prototype.
Move tlb_e to tlb.c
Move op to api/debugger.c
Switch by default to SDL2 for Mupen64Plus 2.1

The current version of SDL is 2.0.3. All new releases of distributions contain
this library already. Current Linux distributions and OpenBSD even backporting
patches from Mupen64Plus 2.1 repo to use SDL 2. Android and other mobile
platform don't have support for legacy SDL 1.2.

People like Anthony J. Bentley and Riley Labrecque already requested
a new release of Mupen64Plus 2.1 with SDL2
SDL 1.2 is not deprecated for us, and we shouldnt frighten the user with 6 lines of exclamation points
Merge pull request #21 from bsmiles32/r4300_organization

R4300 organization
Replace debugger condition variable with semaphore.

There was a possible race condition where API callers may have been able to
call DebugStep multiple times, but the debugger would not react to each call. By
using a semaphore, each call will be handled regardless of how quickly any step
completes.
add ConfigSetParameterHelp to the API, update minor version
Fix build after cp0 module extraction

Introduced in 5c247de4b12cd1e64711e95df90591c12b58759d ("Put CP0 into its own
module")

/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1573:10: error: conflicting types for '__movsb'
     VOID __movsb(PBYTE Destination,BYTE const *Source,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:994:5: note: previous declaration of '__movsb' was here
     __MACHINEI(void __movsb(unsigned char *,unsigned char const *,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1574:10: error: conflicting types for '__movsw'
     VOID __movsw(PWORD Destination,WORD const *Source,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:995:5: note: previous declaration of '__movsw' was here
     __MACHINEI(void __movsw(unsigned short *,unsigned short const *,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1575:10: error: conflicting types for '__movsd'
     VOID __movsd(PDWORD Destination,DWORD const *Source,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:996:5: note: previous declaration of '__movsd' was here
     __MACHINEI(void __movsd(unsigned __LONG32 *,unsigned __LONG32 const *,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1576:10: error: conflicting types for '__movsq'
     VOID __movsq(PDWORD64 Destination,DWORD64 const *Source,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:997:5: note: previous declaration of '__movsq' was here
     __MACHINEX64(__MINGW_EXTENSION void __movsq(unsigned long long *,unsigned long long const *,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1577:10: error: conflicting types for '__stosb'
     VOID __stosb(PBYTE Destination,BYTE Value,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:1032:5: note: previous declaration of '__stosb' was here
     __MACHINEI(void __stosb(unsigned char *,unsigned char,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1578:10: error: conflicting types for '__stosw'
     VOID __stosw(PWORD Destination,WORD Value,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:1033:5: note: previous declaration of '__stosw' was here
     __MACHINEI(void __stosw(unsigned short *,unsigned short,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1579:10: error: conflicting types for '__stosd'
     VOID __stosd(PDWORD Destination,DWORD Value,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:1034:5: note: previous declaration of '__stosd' was here
     __MACHINEI(void __stosd(unsigned __LONG32 *,unsigned __LONG32,size_t))
     ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/winnt.h:1580:10: error: conflicting types for '__stosq'
     VOID __stosq(PDWORD64 Destination,DWORD64 Value,SIZE_T Count);
          ^
/tmp/mxe/usr/x86_64-w64-mingw32/include/intrin.h:1035:5: note: previous declaration of '__stosq' was here
     __MACHINEX64(__MINGW_EXTENSION void __stosq(unsigned __int64 *,unsigned __int64,size_t))
Merge pull request #22 from wnayes/debugger-step-racecond

Replace debugger condition variable with semaphore.