remove `.coveragerc` to get `coverage` to prefer nosetests' config [ci skip]
tweak `_apply` params and docs to reflect its more general use [ci skip]

I.e., while we're using it primarily to wrap predicates, it's
more generally useful than that, so its parameter names and
docstring now reflect that.
refactor the test suite into manageable pieces [ci skip]

including:

    - re-order tests to group 'like with like'

    - move `isatom` test into type-predicate tests (since it's testing
      the type of its arg :-))

    - rename unfinished tests to `todo_` to mark them (and cause
      nosetests to skip them).

    - rename `Foo` to `Thing` (because it makes me happy to do so).

    - factor out test helpers