Remove global mutable variables from hle core.

All global mutable variables of the HLE core were regrouped into struct hle_t.
This allow third party to reuse the HLE core, without limiting them to a single process.
All they have to do is to declare another struct hle_t and pass it to hle_execute.
For mupen64plus plugin, a global hle_t is declared and passed to hle_execute.

I would have expected a small performance hit, because of the added level of indirection,
but it doesn't seem to be really noticeable for me.
Remove RSPINFO requirement in hle core.
Move emulator specific functions outside of hle_t.
Use {Verbose,Warn,Error}Message instead of DebugMessage.

By doing so, we can remove the dependency on m64p_type.h because of M64MSG_*.
Now the HLE core should be almost independant with respect to m64p plugin.
Allow to pass a user-defined object to "external" functions.
Move hle_t definition inside a private header.
Rename plugin.h to hle_external.h
Rename main to hle.
Merge pull request #16 from bsmiles32/avoid_global_state

Avoid global state
Fix: ignored qualifier warning from memory.h
Fix: signed/unsigned comparison.
Fix unused parameter warning.
Merge pull request #17 from bsmiles32/wextra_fixes

Wextra fixes
Fix most warnings when compiling in pedantic mode.
Merge pull request #18 from bsmiles32/pedantic

Fix most warnings when compiling in pedantic mode.
Use clamp_s16 where appropriate.
Remove unneeded state variables.
Fix top comment
Move MP3 prototype into its own header.
Move acmd parsing to alist_naudio