Various kernel fixes.

- Fixed how semaphore and queue disable interrupts. Interrupts have to
  be reenabled before entering the scheduler by making PendSV pending,
  since the interrupt enable state is not saved with thread context as
  it was on ARM7.
- Added disable() and enable() methods to IrqStateSetAndRestore.
- Swapped order of parameters for Ar::StaticQueue::receive<T>() so
  it won’t be the same as the non-template receive().
- Commented out #if DEBUG around NMI and HardFault bkpt instructions,
  since DEBUG isn’t defined for assembler.
- Removed some commented out code in crt0.s.
Test improvements.

- Created a KernelTest abstract base class.
- Created test subclasses for sleep and queue tests.
- Changed main thread to only init and run the selected test case class.
- Updated IAR project file with new test source files.