Challenge util

I will merge #129 first and when I do, I will merge the highest tox coverage possible. (The goal is that it will monotonically increase and eventually force 100 percent code coverage.)
nitpick: `M2Crypto` and `mock` should go into separate import group below stdlib