Rewrite validators using schemas

* [x] Rewrite validators using reusable schemas (required by #230)
* [x] Move tests of validators out of test_views.py (separation of concerns : test_views should test views)

Looks like a good candidate for a regexp