checkers: new Checker interface, add tests

This makes the checkers package actually useful.

Done