Add support for crypt_r() to make the library thread-safe

I made the following changes to the library:
  - Add support for the `crypt_r(3)` function to make the library thread-safe
  - Add support for binaries as key and password.
  - Make the buffers used for key and password dynamic by using `alloca()`
  - Remove local `crypt.h` header to avoid collisions with system header
  - Add conditional compilation checks to support environments without thread-safe variant of `crypt(3)` (i.e. Mac OS X)
  - Update version to 0.3.0