adapt pouchdb.changes() to pouchdb 3 event handler

PouchDB 3 introduced a new API for [changes()](http://pouchdb.com/api.html#changes) which now returns an event emitter. The wrapped changes function now also makes use of angular's `$q` and uses the `notify` callback if more than one change is expected (e.g., with `live: true`). Furthermore, the promise is called with an object containing both the `change` (containing the data) and the `changes` object (which may be useful for cancelling the subscription).

The new version can, e.g., be used as follows:
```javascript
var db = pouchdb.create('mydb');
db.changes({live: true}).then(null, null, function (res) {
  // access res.change or res.changes
  // e.g., cancel via res.changes.cancel()
});