Added model-service.js to store model data.
Parse /initialSync data and populate the new data structures.
Hook into more of event-handler-service and mimic its functions for now.
room.html now displays messages from model-service. Add debugging fields. Hook up the room member *at the time* to the message so it can display the right historical member info.
Replace lots of .events.rooms[room_id] with .room
Prevent EventStreamService from knowing too much about the EventHandlerService by changing the contract to just be a single initialSync response callback. Leave it up the handler to deal with splitting out information from /initialSync.
Keep matrixService stateless and make matrixFilter use modelService.
Make call stuff use modelService.
Make recents[controller/filter/html] use modelService.

This breaks functionality whilst both events.rooms and modelService
are in use.
Remove events.rooms[room_id] entirely from event-handler-service.

Everything now uses modelService, but there are still one or two
minor teething problems to fix.
Fix bug which prevented the number of users being visible on the recents view.
Fix bug which prevented room name invites appearing correctly.
Fix bug which prevented pagination from bumping the list down, causing infini-pagination.
Fix hidden event keys being incorrectly shown in the even info dialog.
Fix broken redact enable logic.
Variable renaming, general cleanup. Don't feed state events from /initialSync twice.
Reference the room_member key on messages which adjusts for current vs old_room_state. This displays names for historical users correctly, but is off by one (referencing content not prev_content).
Backwards compat for old-style avatar_urls
Fix off-by-one bug when displaying display names / avatar urls when paginating.
Rejig order of checks/state updates/message insertions for m.room.member. Mark known issue.