Add a deletions table
Show display name changes in the message list.
Fix SYWEB-8 : Buggy tab-complete.

The first red blink was caused by an uninitialised search index. There is no
caching of entries, since this then wouldn't update if someone joined/left
during the tab. Instead, set to search index to MAX_VALUE then fix it to a
valid index AFTER the search is complete. Also ditched trailing space on ": ".
fix NPE
send messages to users from the home page (SYWEB-19)
Partial fix of SYWEB-28: If members do not have last_active_ago, compare their presence state to order them
Allow a (hidden undocumented) key to m.login.recaptcha to specify a shared secret to allow bots to bypass the ReCAPTCHA test (SYN-60)
Make sure the config actually /has/ a captcha_bypass_secret set before trying to compare it
Config values are almost never 'None', but they might be empty string. Detect their presence by truth
Add m.room.deletion. If an event is deleted it will be returned to clients 'pruned', i.e. all client specified keys will be removed.
Make sure we don't persist the 'pruned' key
Implemented /rooms/$roomid/state API.
Add prune_event method
Update API docs to include notes on /rooms/$roomid/state
Send an HMAC(SHA1) protecting the User ID for the ReCAPTCHA bypass, rather than simply the secret itself, so it's useless if that HMAC leaks
fix one cause of SYWEB-53
remove old commented-out code
Merge branch 'jira/SYN-60' into develop
SYWEB-28: Fixed weird members list ordering: sort members on their last activity absolute time
Fix SYWEB-72 : Improve performance when typing.

Swapped ng-keydown to a directive, which does the same thing (check if up/down
arrow then call history.goUp/goDown). This has *dramatically* improved
performance when typing in rooms which have lots (>100) of messages loaded.