crypto:sha/crypto:hash backwards compatibility and small fix

As a followup to PR https://github.com/Eonblast/Emysql/pull/104, I've made proposed changes that dynamically generate the crypto:sha or crypto:hash functions based on the Capabilities of the installed Erlang system.

From one of the git commit comments:

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 this includes a small "can never match" fix that dialyzer found.