Make RFC2822 and username tests use Theories rather than loops

Control functions (for, if, etc) in tests are bad. The (experimental) Therories
class looks to handle data based tests quite elegantly.
Move username and email validation to separate classes to test.
Also, fix minor bug in GlossaryTestSuite (database reset rules) and
give the Register tests a waitFor for the fields/errors to become visible,
to prevent element stale / not found problems.