[WIP] CommonCrypto Initial

This PR is the base structure + hash support for CommonCrypto, an OS X cryptographic API.

- [x] Basic backend structure
- [x] Hash support
- [x] Basic docs
- [ ] Determine how to skip basic cipher/hmac/hash tests if the backend doesn't support those operations. Ideally this won't require us to add a generator + separate function for each test? (Temporarily done with inline ```pytest.skip()```)
- [ ] Determine how best to skip commoncrypto on unsupported platforms

Skipping on unsupported platforms is currently done by checking if ```platform.system() == "Darwin"```.