Cleanup lint errors.
Reuse more code in tests.
Define a library-specific macro to use for assertions.

This makes it easy for users who want to use a different assertion
mechanism to swap in custom code.
First commit