feat: hasField is now a public method on `JsonObject`

- Also, fixed bug in `toJson` method on object.
Previously, delegate json returned the root json
refactor: Move resume_token and rpc into separate libraries
Minor changes to `either`

- Added 'branch' constructor
- Added toJson method
feat: Upload/download files to google cloud storage.

This change set adds the ability to upload or download files from google cloud storage.
Merge pull request #4 from markovuksanovic/0.2.0

feat: Upload/download files to google cloud storage.
chore: Remvoed `projectId` parameter from query constructor
chore: Removed `md5` method from source
feat: Serialization of resume tokens
refactor: `addSource` request on `StreamedRpcRequest`
typo: Incorrect `start` parameter in addSource
Merge pull request #5 from ovangle/0.2.0-2

Various small fixes
refactor: ResumeToken contains a future which contains information about upload status.

Resume token contains a future which has information about upload status. If resume token is serialised the future is lost and before the upload continues one should refresh it by calling getUploadStatus method.
chore: remove unnecessary tests
refactor: ResumeToken does not have type any more. ResumeUpload flow refactored to utilise getUploadStatus method. getUploadStatus method has been made private.
refactor: uploadObject and resumeUpload method take a map of query parameters instead of optional predefined ones.
Changes after code review
Merge pull request #7 from markovuksanovic/0.2.0-marko

0.2.0 marko
feat: Query paramaters now passed as a Map

The old method signatures were cumbersome and didn't add anything of
value to the API
Merge branch '0.2.0' of github.com:ovangle/google_cloud_storage into 0.2.0-2
bug: Improved error handling

Synchronous errors not being lost when adding source to request