Concurrency

These commits implement the *mutex* and *condition variable* multiprocessing data structures.

Don't merge this until:
- [ ] <strike>Mutexes are made re-entrant</strike>
- [x] Mutexes are made thread-aware
- [ ] Testing is performed