Made SpinLock methods non-static.
Renamed SpinLock methods to match those of Mutex.
Added LockGuard and used it where it's reasonable.
Use python2 instead of python.

The latter might point to python 3, which can't interpret
the scripts (thanks Martin).
Use 64 MB for the usb-image (32 is not enough in debug-mode).
Increase flexibility of Semaphore.

Now we have an unlocked version where we can reuse the lock of
the caller for synchronization. Additionally, it may receive
signals during blocking.
Make use of BaseSem in terminator.
Allow signals during wait for data to read.
Removed suspend() and resume().

They are not really needed and only complicate everything.
Use semaphores in vm86-code.
Removed unused events.
Use semaphores for interrupts instead of signals.

This has several advantages:
- it gets easier in userland at some points because we are not
  forced to live with asynchronous control-flow interruptions.
- one doesn't have to be careful anymore to not loose interrupts.
- the UNIX signals have a really different usage pattern. They
  don't have to be counted (it doesn't hurt if one gets lost) and
  they are not performance critical (in contrast to interrupts).
Thus, by decoupling interrupts from UNIX signals, we can simplify
the signals implementation and are more flexible now because they
are not performance critical anymore.
Removed duplicate definition of PAGE_SIZE.
Fixed includes.
iso9660: use error instead of fprintf+exit.
Removed superfluous method wakeupThread.
Put the ios_base::Init stuff to cout etc.

This stops the linker from including it when it's not used.
const-fixes in map and bintree.
Format fix in b.
Fixed decodepanic.