Added atomic support
Split instruction macros into seperate header (from atomic.c), added compiler.h
Added spinlock support