regcache: Avoid to free address registers if possible
regcache: Add function lightrec_clean_regs

This function has the same behaviour as lightrec_storeback_regs, but it
will also clear the dirty bit of each register.
Add preliminary support for meta-opcodes
lightrec: Shorten types
lightrec: Allow to specify custom I/O ops in the memory map

The current generators for I/O opcodes work fine when the memory area is
a standard RAM or ROM area. However, they don't work as soon as the
memory area requires more complex emulation mechanisms to happen, like
when it corresponds to a memory-mapped set of hardware registers.

This commit introduces a new internal function, that will later be
called from C for every I/O operation.
lightrec: Keep a pointer to the Lightrec state in block structures
Make the I/O functions call a C procedure to perform the operation

This is done in order to allow custom I/O functions on certain memory
area. It is required to properly emulate the hardware when the target of
an operation is a hardware register.

The old I/O functions have not been removed, but marked as "meta"
instead; they will be reused at some point, when we can determine at
compilation time that the address targetted by the I/O operation
corresponds to a standard memory area (e.g. RAM or ROM).