Fix for incorrectly escaped string (#69)

- Further inspection shows that the root cause is because we were still
  using toString when retrieving values our Payload.
- We know now that there will always be String values in the Payload set
  by TrackerPayload and SchemaPayload so we can remove the toString.
- This fix also lets us remove the ugly hack of stripping the end
  quotes from a value (!)
- Includes fixed test cases to no longer send non-stringified data
- Fixes #69
Fix double values to strings (#68)

- As part of the Payload interface, we allow values to be Objects to be
  added into the Payload. This allowed non-string values in.
- The 'Object' for values were intended for complex maps, but it no
  longer makes sense to send this data as anything except a string.
Updated Test
Updated CHANGELOG with 0.5.1
Added default Emitter constructor & protected methods
Updated version in build.gradle
Made httpMethod protected to access from subclasses
Made responseCallback protected to access from subclasses
Moved Emitter to emitter package & created new payload classes
Using Util as a singleton to override base64 encoder
Util constructor protected
Revert "Util constructor protected"

This reverts commit 24ebb9bd7e725b7aee9b951caa0b6049dfce0fc8.
Revert "Using Util as a singleton to override base64 encoder"

This reverts commit 17a20fb3d6f32369b21e53986e15974d1df7d225.
Using third party Base64 encoder
Committing updated Version files
Merge branch 'feature/post-hotfix' into develop
Merge branch 'develop'