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.


Actually I just tested it and indeed this happens:
```
2.1.3 :001 > class A
2.1.3 :002?>   class_attribute :s
2.1.3 :003?>   self.s = {}
2.1.3 :004?>   def self.ss(k,v)
2.1.3 :005?>     self.s ||= {}
2.1.3 :006?>     self.s[k] = v
2.1.3 :007?>     end
2.1.3 :008?>   end
 => :ss 
2.1.3 :009 > class B < A
2.1.3 :010?>   end
 => nil 
2.1.3 :011 > B.s
 => {} 
2.1.3 :012 > B.ss(1, 2)
 => 2 
2.1.3 :013 > B.s
 => {1=>2} 
2.1.3 :014 > A.s
 => {1=>2}
```