473 question tags

Ready for review. The part I'm most unsure about is the way `@ability` is created and used in the tests, and its interaction with user and mission. But all tests are passing! 
This one doesn't seem to work without the DB. Calling `valid?` is supposed to run callbacks, but it apparently doesn't affect the state of the non-DB object made by `build` or `new`.