This has two benefits:
1. Using channels makes it easier to time out while waiting
2. Allows us to clean up goroutines that were waiting if we timeout the
request
* Remove unused struct field
* Ignore unused test data
* Remove unused variables
* Remove deadcode
* Fix up vetshadow warnings
* Convert to using gometalinter
* Update travis
* Use vendored versions of gometalinter
* Make gometalinter install its stuff
* Vendor misspell
* Use BuildEvent method on room join
* Fix building the list of room members in the sync notifier
* Fix building the list of room members in the sync notifier
* Rephrase comment
* Clean roomserver consumer
* Make account data sync incremental
* Use a different name for the sync AD table
* Improved error logging
* Created missing topic in tests
* Add client API topic to tests
* Add client API topic to common
* Move data batch retrieval
* Add database index for data retrieval
* Fix typo in table name
* Fix indentation
- `s/Server/OutputRoomEvent/` in `consumers` to accurately reflect what is being consumed.
- `s/set/userIDSet/` in `notifier.go` for clarity.
- Removed lying comments.
* Split out notifying /sync requests and calculating sync responses
The logic for notifying /sync requests is about to get really
complicated as we optimise when to wake up requests, so split
out that code into a separate struct to isolate it and make
it easier to unit test.