WIP Assistant / TaskPlans / Sprint 3

Don't merge, WIP.

To test it out, switch to this branch and then run:

```
rake db:drop
rake db:migrate
rake sprint:003
rails server
```

Go to `http://localhost:3001`, sign in as the sole user (printed out in the sprint:003 run above.


Keep in mind that mutating `task_plan_types` (by adding values to the hash, instead of reassigning it) can lead to oddities. I'm not 100% sure, but I think the base class will be able to see changes done by subclasses.