Modularizing the code, using ui-router, demonstrating DRY tests, etc.

Hi Kyle,

Ok, here are the changes we talked about. What do you think? 

There's an integration test added, btw, for a long-standing bug that happens if you add an item, switch to a view, then come back to "todo". There's also a fix for that now, which demonstrates Misko's comment that views referencing a model should always have a "dot", like "appData.todos". For some reason, though, it works by hand but the test fails. I'll look into that.

Cheers,


- Sanford