added helpful lock / interrupt macros, disable interrupts lots of places they need to be, fix thread_yield