Added re-auth for tokens that expire

Added re-auth for tokens that expire by adding a new method that allows a user to pass in an existing token returning a new token with a later expiration date.  If provider does not have this method code reverts to the normal login method for provider. This fixes issue #30