Smoother UI interactions. No longer painful to use

@hkal 

https://www.pivotaltracker.com/story/show/65764700
https://www.pivotaltracker.com/story/show/66696910

I refactored component data so that we only run it when a filter action happens, rather than on every angular digest. We had enough graphs that the memoize functions were taking long enough to make scrolling choppy. While I was in componentData I also abstracted the memoize functions that were doing the same thing. There's still a lot of improvements that we can do in componentData but I think this is a good step.