added new shirt_eligible property to fix volunteer checklist

I fixed a different bug and then created a new one while I was at it!  Whee!

There are now two different properties, ``gets_shirt`` (which is a boolean indicating whether someone should be handed a shirt at the merch booth) and ``shirt_eligible`` (which also returns True if the person is just a volunteer since that means they an theoretically get a shirt later).
New unit tests, hooray!