To eliminate the rebar dependency on edown, change the "make edoc" target to use the new edown_make script to generate documentation.
The previous commit added the hmac module and was supposed to include hmac documentation, but by accident it didn't. Add hmac specs and doc. Also remove local copy of rebar -- rebar is popular enough now that erlang developers generally need a copy on their system, and we don't want to have to keep updating a local copy here every time the rebar devs make a change.
The doc/erlsha2.md file generated by edown previously needed a lot of hand-editing to make it right. Ulf Wiger found the pretty printing option missing from the edown directives in rebar.config. Add that option, delete the hand-edited doc/erlsha2.md, and restore the edown doc generation directives in rebar.config.
NIF resources could leak if a caller invoked one of the sha*_init functions without ever passing it to the corresponding sha*_final function. Resources are now freed immediately after creating resource terms that are returned to callers. Also, add a Context destructor to free the contained binary if it's never been returned to the caller.