Refactor project specs

I used to test multiple expectations to improve performance. Then I was
told that I was destroying the universe and must use one expectation per
it statement. So I switched.

Now I'm told that for performance reasons it's okay to do more than one
expectation per it statement when testing against the database.

Oy. That's what I was doing.

Refactoring project_specs to multiple expectations improved testing
speed from almost 7 seconds to less than 3 seconds. So, to anyone
wanting to yell about these tests, forget it. They are not being
switched back.
Refactored person, phone, and url_specs
Refactored memo spec
Refactored contact spec
Finished refactoring model spects.

Test performance is twice as fast. Used to be 19 seconds. Now it's a
little over 9 seconds.
Vastly improved ability checking and testing

The ability model was woefully under tested. Added check_authorization
to the subdomain controller to help catch problems with role
authorizations. Also added ability specs.
Locked down doc model authorizations

Documents attached to memos could still be edited and deleted even if
the memo could not. This update tightens the doc authorizations by
linking the expirations of memo and doc together.

Fixed a few bugs in the ability file.
Improve specs. Lock down abilities.