Use `chpwd_functions` array in zsh.

This is a better way to load autoenv than overriding `cd` in zsh, because with
this method, autoenv will work fine even if auto_cd option is turned on in zsh
(typing just the directory name without a `cd` to change directory).

And (as a minor point) it produces cleaner error message,

autoenv_cd:cd:2: no such file or directory: non-existent
vs.
cd: no such file or directory: non-existent
Add autoenv_run() for manually executing files

When running autoenv_check_authz_and_run from command lines there are two
obvious problems:

 1. The command is ugly
 2. It does not expect to find a relative path and adds a relative path to the
    auth file

I am using this new command inside my .env file to differentiate between global
and local environment settings. Now I can upload my .env into Git while my
passwords and environment-local settings (eg. PATH) will be hooked from my
`.local` file. This is my example .env:

    use_env killer_app
    export DATABASE_URL='postgres://root@localhost'

    SCRIPT_DIR=$(builtin cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
    LOCAL_FILE="$SCRIPT_DIR/.local"
    if [ -f $LOCAL_FILE -a ! -z $AUTOENV_AUTH_FILE ]; then
        autoenv_run "$LOCAL_FILE"
    fi

This provides some additional security when collaborating with others and
sharing some environment defaults needed by a 12 factor app.
Typo fix
Handle the case where grep is an alias to egrep same way as autoenv_check_authz() do.

egrep -G (grep -EG) results in conflicting matchers
Export all variables in an .env file, actually Foreman-compatible now

Closes #38.
Fix shasum not being available on all distros. Fixes #23

Changed shasum to sha1sum.
Update README.rst
Should now work under OS X