Try to get long packets in a single gen_tcp:recv call
Do not get smaller packets than the tcp buffer size
Add crypto:sha/crypto:hash detection via macros

Relevant changes:

.gitignore: Made so the autogenerated crypto_compat.hrl file is not
included in source control. It should be ignored because of its
autogenerated nature

Makefile: Add `make crypto_compat` rule, and make sure it runs before
compiling the modules.

rebar.config: Added so that apps that use rebar for dependencies can
take advantage of Rebar's pre_hooks capability

emysql_auth: Modified the password generation to use the generated
Macros instead of straight calls.

support/crypto_compat.escript: The script that generates the
include/crypto_compat.hrl file.

Also fix "can never match" error found by dialyzer.

emysql_tcp:response returns {Packet, Status, Buff}, whereas line 61 of
emysql_auth was trying to match against {{Packet}, _}, Buff}, an
incompatible match.

In this case, Packet was an #error_packet{} record.