added simple functional checkers

this is a highly composable checker lib @sixohsix came up with after some rejected ideas I've come up with.
It still needs some documentation, of course.

Since I was touching abl.util anyway, I've copied over the versioneer stuff from abl.shop. I'm not entirely sure if I found everything that needs to be changed. Please review.