Added run and walk functions for the Found variant in the Workload module.
Removed unused ConstraintKinds from VisitorMode.hs
Now VisitorMode is a GADT again, rather than a type class.

This change was made because I realized that extending
the type class based system was going to get
painful as I'd need to adjust the arguments to
the type class methods, whereas if I change back
to using pattern matching then I can move the logic
to where all of the information is, rather than
having to figure out exactly which information is
needed.
Moved mant of the former typeclass methods back to their call sites.

This decision was made because this way it is easy to extend
them in such a way that makes use of all the information at
the call site rather than having to add new arguments to
the function;  arguably it also simply makes more sense for
logic that only is used in a particular place to actually
appear at that place.  Finally, there *might* be a speed-up
since there is no longer a need to construct closures to
pass to the old functions.