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.


OK I think I found the solution:
```irb
1.9.3-p547 :001 > class A
1.9.3-p547 :002?>   class_attribute :s
1.9.3-p547 :003?>   def self.ss(k,v)
1.9.3-p547 :004?>     self.s = s.try(:dup) || {}
1.9.3-p547 :005?>     self.s[k] = v
1.9.3-p547 :006?>     end
1.9.3-p547 :007?>   end
 => nil 
1.9.3-p547 :008 > A.ss(1,2)
 => 2 
1.9.3-p547 :009 > class B < A
1.9.3-p547 :010?>   ss(3,4)
1.9.3-p547 :011?>   end
 => 4 
1.9.3-p547 :012 > class C < A
1.9.3-p547 :013?>   end
 => nil 
1.9.3-p547 :014 > A.s
 => {1=>2} 
1.9.3-p547 :015 > B.s
 => {1=>2, 3=>4} 
1.9.3-p547 :016 > C.s
 => {1=>2}
```