These never really belonged with the rest of zerver.lib.utils.py, and having a separate library makes it easier to enforce full test coverage.