bug fix from regaddr branch
Use more uint16_t and less int32_t

Instruction timings have risen a little for non mmu, 70usec/instr
mmu timings 74usec/instr
Added xmem
Introduce memread/memwrite16
Refactor step() into many small functions

This matches the go version and has improved instruction dispatch time from
~4900/65536 to 4450/65536

There was initially some small reduction in code size, but it is starting to creep up again as the compiler decides not to inline functions.
more cpu improvements
Big bunch of improvements.

See http://dave.cheney.net/2014/01/30/avr11-profiling-on-the-atmega for the overview.

The next challenge is to remove the use of uint32_t's for unibus addresses. This will mean a union type to avoid the shift cost for 32bit quantities.

I should probably do the same for registers and other 16bit quantities like the PS word.
Merge branch 'cpu-uint16' of https://github.com/davecheney/avr11 into cpu-uint16

Conflicts:
	cpu.cpp
Working cpu
Baby steps in leaving arduino studio
Large tweaks
Added makefile
Merge pull request #8 from davecheney/adios-arduino-studio

Adios arduino studio