Moved the Path tests to alphabetize.
Moved Threads stress tests under their own subgroup.
Changed the implementation of modes to use type classes.

The advantage of this is that I no longer need to
carry around all of the type variables that
depend on the visitor mode as I can now use type
functions to access them individually.

This also eliminates the need in many cases for
a value indicated the visitor mode to be stored
and/or propagated as scoped type variables
can be used instead.