Performance Updates

This update fixes many types to make the emulator more efficient.
instruction_cache.go attempts to cache the most recently used
instructions of certain types, to avoid reallocations in the future.
Unfortunately, this may be reverted later on to make multiprocessing
easier. Even so, the introduced changes at least double the average
number of instructions per second the emulator can handle.