tests: remove redundant webtest import and call
models: add SwitchableTypeField

A SwitchableTypeField is a field within a mongo document which is allowed
to be one or more types, and should change its behaviour accordingly, depending
upon the value.
models: a variety of fixes to the tests and model