Explicit Login

Switches the API for the client from:
```ruby
TeslaApi::Client.new(email, password, client_id, client_secret)
```
to:
```ruby
client = TeslaApi::Client.new(email, client_id, client_secret)
client.login!(password)
```
This is necessary for re-use of tokens across instances of the client. Right now, I've got a process checking the API once a minute and I know that's creating spurious access tokens in their system.