Added strong guarantees for destroying a permit currently being waited upon or granted in other threads.

Improved documentation.

Added unit tests for destruction guarantees.
Ripped out all the old C11 to C++11 thunks, replaced with C11 to Boost.Atomic thunks.
First go at forking the pthreads condition_variable implementation into a pthreads permit implementation.
Got the pthread permit unit tests working under the Boost.Test framework.

Fixed a tough to find race condition - turns out that a pthread cond on Linux will very, very rarely hang if you destroy it during signalling it.
Removed Boost dependency when compiling pthread permit standalone.