Refactor memory

This is the first part of the memory subsystem refactoring [1].

The goal of this set of commits is twofold:
-first remove the duplication that exists between byte,hword,word and dword accesses to memory
-second remove some global variables associated with memory accesses (address, rdword, cpu_byte, hword, word, dword)

Issues:
- break the new_dynarec (If someone more knowledgeable than me can look what to change to make it work again)
-use interpreted functions for memory accesses in the dynarec (I didn't know how to rewrite them, so I need help here).

I'd like to hear about any regression (behavior/performance), especially from downstream since I can't really test that.

cc: @richard42, @fayvel, @mupen64plus-ae, @twinaphex

[1] I have some more commits waiting to be cleaned up in my branch refactoring_experimental :)
Those will come later.