Allow passing a Tempfile into create_contents

My use case is building a basic application that allows users to upload files via a web interface and have those files stored in a git repo. The pros and cons of that put aside I had something similar to this:

*pseudo code warning*

```ruby
post "/upload" do
  file = params[:file].fetch(:tempfile)
  path = generate_path(file)
  api_client.create_contents(repo, path, message, :file => file)
end
```

This fails because the file object is a `Tempfile`.

I don't know if this is something you actually want to add. I even considered checking `responds_to?(:read)` but thought I should raise it here.

Of course my alternative would be to do the read myself.

*On an unrelated note I was receiving failures with the following:*

      VCR::Errors::UnhandledHTTPRequestError
      VCR::Errors::UnhandledHTTPRequestError
      rspec ./spec/octokit/client/organizations_spec.rb:225 # Octokit::Client::Organizations.add_team_membership invites a user to a team
      rspec ./spec/octokit/client/organizations_spec.rb:233 # Octokit::Client::Organizations.remove_team_membership removes a user's membership for a team
```ruby
irb(main):003:0> tmp = Tempfile.new("example")
=> #<Tempfile:/var/folders/ln/29gk9b0d0gs964l2213k0fgm0000gn/T/example20141003-8118-tlfkes>
irb(main):004:0> tmp.is_a?(IO)
=> false
```

This is what makes me question the decision to do it this way as opposed to duck typing. For some completely unknown reason to me `Tempfile` isn't based off of `IO`