Apply compatibility layer for firmware/server and MCU architectures

- transform mem.h into archcomp.h
- uniform codebase for architectures w/wo different address spaces
- allow usage of debug_functions for local PC tests
- transform some AVR specific code into portable code
Separate out and automate tests

"make tests" in firmware/pctest compares results of current code
tests with expected static results located in firmware/pctest/desired
Simplify command_execute()
Simplify detection of XD-2031

by moving "xd2031" to the beginning of the version string.

It seems easier to test the first 6 characters instead of
scanning the version string for the hardware separator
sign '/' first and compare against "xd2031" there.
Simplify errormsg.c
Add some copyleft headers
Fix reldump issues

- Remove binary file accidently checked in
- Add binary to .gitignore to prevent check-in of binary
- Update Makefile to compile with colored terminal output