Form validator: a system to handle forms easily

Fixes #27