Returning Collections on Associations getters

Previously this commit, all associations would return an instance of Array.
This would not allow the usage of methods that are defined on the collections.
Returning a collection on the association getter make possible to use filters
that are already defined on the collection.
Fix conflict with the main Fog gem

The fog gem depends on `fog-provider*` gems that depende on `fog-core`.
Both define the same constant `Fog::Version` which might conflicting.
fix typo
Merge pull request #87 from tnaoto/fix/typo_image.rb

fix typo
Setting fog-core and fog versions in header
Using a new class to work with associations

Following the [Open Closed
Principle](http://en.wikipedia.org/wiki/Open/closed_principle) will
assure nothing will break since the original `Collection` class will
remain the same.
Merge pull request #84 from zertico/collections

Returning Collections on Associations getters
Don't destroy the encoding of strings passed to get_body_size
Add spec that get_body_size doesn't change the encoding of body
Avoid duping string body of request
Testing the insertion of fog version in header
Merge pull request #86 from zertico/version_conflict

Fix conflict with the main Fog gem
Merge pull request #88 from gocardless/fix-body-encoding-bug

Don't destroy the encoding of strings passed to get_body_size