Add support for write(byte)

Summary:
A bunch of IO streams call the more
inefficient write(byte) operation.
We should support it.

Test Plan:
Ran integration tests.
Merge pull request #21 from facebook/fix_write

Add support for write(byte)
Add data to mac before writing out the stream

Summary:
Writes data to the mac before writing out to
the stream.

This makes it more secure in presence of bugs
which partially write bytes to disk.

Test Plan:
integration tests.
Merge pull request #22 from facebook/write_after_mac

Add data to mac before writing out the stream
Add gradle build to upload

Summary:
Add gradle configuration to build AARs with native code
and upload them.
Merge pull request #26 from facebook/add_gradle

Add gradle build to upload
Update README.md
Update README.md
Update README.md
Update README.md
Update README.md
Update README.md
Improve some of the exception messages.

Summary:
Add details of cause of exception to the call
stack for the exception.

Test Plan:
Tested by throwing exception.
Merge pull request #31 from facebook/add_exception

Improve some of the exception messages.
Upgrade openssl to 1.0.1h

Summary:
Upgrades openssl to 1.0.1h

This is taken from
https://android.googlesource.com/platform/external/openssl
1417357d893849c4b6afdd98c32b6ca1b4b19a8b

Test Plan:
Compiles in next diff
Make openssl1.0.1h compile and minimize size

Summary:
Minimize the size of the binary.
Patches to make openssl 1.0.1h compile.

The previous patches in
https://github.com/facebook/conceal/tree/master/native/third-party/patches/
do not apply cleanly, however the code is pretty much
the same, so I manually patched it.

Test Plan:
Ran the instrumentation tests and the unit tests,
they all pass.
Merge pull request #33 from facebook/upgrade_openssl2

Upgrade openssl to 1.0.1h
Updated vogar.jar to fix benchmarks.
Merge pull request #44 from facebook/fix_benchmarks

Updated vogar.jar to fix benchmarks
Adds NIST based tests for AES in CTR mode.