add waitlist support and refactor ParticipantSignup api

Adds some basic waitlist support for issue #49. Still needs automated
(or manual) transition from waitlist to signup when space opens up in
the standard experiment signup pool