Update push functions to support more targets

Now supports `channel_tag` and `client_iden`. Because these
are strings and there is no way to differentiate them from device
idens they must be defined in an object.

`source_device_id` is also supported as an optional parameter in
the object.
Add support for subscriptions API
Add missing options parameter for `contacts`
Update `updatePush` so that lists can be updated
Update request version
Use json bodies for all posts
Update version to 1.4.0