implements refresh access token (session id) for soap-based (username/password) login

Hi @stomita,

We'd like to use your fantastic library for our MavensMate for Atom plugin, however, we require a few modifications.

1. We require soap-based logins. https://github.com/joeferraro/jsforce/commit/69ff07d9cd77ba700d5de875af83223c934140c9 adds token (session id) refresh functionality for soap-based logins. 
2. Environments like `node-webkit` and `atom-shell`, while they have a `window` object, they are very strict about the use of `eval` and arbitrary scripting. https://github.com/joeferraro/jsforce/commit/eb428a95b5b3fd095c6a6c14dec4cec5e681a88c changes the way `jsforce` determines whether it's being run in a browser, as both node-webit and atom-shell use a `global` object (see https://github.com/google/traceur-compiler/pull/1377/files)

If you accept this PR, we'll move forward implementing the Atom plugin with jsforce.

Feel free to reach out with any questions.

Cheers

Joe Ferraro