checkers: new Checker interface, add tests

This makes the checkers package actually useful.

Perhaps note here that ErrCaveatNotRecognized should be ignored if the checker returns ""?