Bug 1023662 - [User story] Show 5 day week view r=gaye

**WIP**, still going to clean up the code and try to use external templates for most of the elements.. I have a few more changes locally (trying to abstract it better so that we can use same logic for day view as well), but will probably take another full day to clean up the code..

I'll rebase this later and squash commits.
I was getting some weird errors, don't know exactly what was going on, but I know this makes the tests simpler because we can ensure the data is persisted at the right time, and that the `clock.tick()` calls will be enough to trigger the callbacks (adding an async db call to the mix would make things harder)..