Throw an error if the API key contains whitespace
Add Gemfile.lock
remove Gemfile.lock
Add ruby 2.0.0 to travis config
Add Gemfile.lock to .gitignore
Always call to_sym instead of type checking in Stripe::StripeObject#[] method
Allow to update a resource without retreiving it first

Rationale:

  Sometime you don't care about the current state of a resource
  you just want to update one of it's attributes.
  It should only require one request.

fixes #52

```ruby
  c = Stripe::Customer.new("cus_1EqKjPaFs4ZwDD")
  c.description = 'Ny new Description'
  c.save
```

Before:

```json
{
  error: {
    type: "invalid_request_error",
    message: "A parameter provided in the URL (id) was repeated as a GET or POST parameter. You can only provide this information as a portion of the URL.",
    param: "id",
  }
}
```

After:

Successfully update the customer and return it's whole state.
Due to a server misconfiguration issue, we were low on memory.
Attempting to spawn a subprocess to get the uname threw an out of
memory error.  Since the uname is only needed to provide diagnostic
info in the User-Agent, it shouldn't cause stripe to fail.
Update README.rdoc
Add customer.upcoming_invoice convenience method

It seems to embrace the 'Ruby Way' (and more convenient in my own code) to be able to access an upcoming invoice from the customer itself rather than de-reference the customer id and ask the Invoice class itself for that info.
Split out independent parts of Stripe.request and cleanup code

Make the SSL checks, user agent assembly, and request header
generation separate methods.

Also switch to class instance variables instead of class variables and
accessors instead of custom functions, and wrap lines to 80
characters.

Original patches come with thanks to Stevie Graham (with some style
fixups from me).

(fixes #53, fixes #54)
Merge branch 'refactor'

Conflicts:
	lib/stripe.rb
Merge remote-tracking branch 'origin/pull/47'

Conflicts:
	lib/stripe.rb
Merge remote-tracking branch 'origin/pull/56'
Merge remote-tracking branch 'origin/pull/57'
Merge remote-tracking branch 'origin/pull/58'
Merge remote-tracking branch 'origin/pull/60'
Merge remote-tracking branch 'origin/pull/61'
Merge remote-tracking branch 'origin/pull/63'
Merge remote-tracking branch 'origin/pull/65'