Reset atmega328 by code

the only difference between jmp 0 (or jmp boot area) is registers are not zeroed. proper coding involves re-writing registers anyway so should not be a problem.

a better way is force watchdog timeout. then the main difference is just one bit in the status register.