Refactor unit tests and use suites.

The first Check example is rather misleading... Our tests so far were not
actually being run.
Don't use pointer arithmetic on void*.
Fix broken tests.
Fix failure to init off in tests.