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 then on every angular digest. We had enough component data functions 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 the same. There's still a lot of improvements that we can do in componentdata but I think this is a good step.