Use exec and login shell in run_shell

Use exec instead of a subcommand to replace the current authy-ssh
process.
Use the -l flag to run the new shell as a login shell
Put the -l flag on exec instead of SHELL

exec -l SHELL tells the shell to behave as a login shell.

-l is not supported by every shell explicitly.  For instance if a users
login shell is set to git-shell, exec git-shell -l will die with an
error, whereas exec -l git-shell will not.
Re-add run_shell exit to return exit code

After testing this function more, I found without set -e enabled the script will fall through the exec call in the case of an error.
Re-added an exit call to return the exit code from the command that failed.  This reflects the standard ssh command behavior.
Clean user input to only select the entered digits.

When people made mistakes when entering the number it still will
validate the token properly. Besides it will print a validation error
inmediatly if the token is wrong.
We can also be more comfortable sanitizing the user input like this.
I don't want to validate the length of the string because it will break
the script if the API token length changes in the future.
Force token validation.

By default the API doesn't verify the token if the user has never used a
valid token. With this change it will always force the token validation
so people need to install the app or use a valid token in order to
access the server.
Explain how to get SMS support.
Merge remote-tracking branch 'moshen/patch-1'
Bump version.
60 seconds timeout on read of authy token

When ssh connects from the scripts on the local side 
(this should not normally occur) authy-ssh script was waiting 
for authy token, which was never coming.

One example is bash-completion that connects in background 
to check for remote folders, and bash just stops responding 
when you press tab.

This commit introduces 60 seconds timeout on authy token input.
This way scripts are no longer locking up forever.
Downside - user must enter token quicker.
In case of sms there maybe not enough time for sms to arrive.
Improve curl detection.

In some old versions of curl the option --help gives exit code 2 making
our test fail.
Fixes bugs in `login` and `run`.

In function `login`, inputting a malformed token causes: `return -1`. Not all
versions of `return` support negative parameters, causing this line to
produce an error, and the script to continue despite meaning to quit
early. Changed to `return 1`.

In `run`, login is called with `login $authy_token $mode`. This means
it's possible to arbitrarily set the parameters of `login` by putting
spaces in $authy_token. eg, if `authy_toke="123 test"`, then the second
parameter of `login` will be set to "test". Currently, I don't think
this can be exploited, but might cause problems in the future.
Check both the response code and body to see if the token was validated correctly.
Merge pull request #1 from authy/master

updating