Fixes for the remaining solutions (except static)

I did the needed changes to get the remaining solutions to compile (except "static"; more on that below). Most of it was getting the custom natural types working with the benchmarking code: NFData instances for evaluating the results fully and Num instances for fromInteger so that you can write e.g. `fac 1000` instead of `fac (Succ (Succ (... (Succ Zero)...))`. "Cartesianally-inclined" seemed to have just a typo resulting in an infinite type.

"Static" can't really be made to work sensibly because it does the computation in the type system, at compile time. Like the code says at the bottom, try checking the type of `fac four`!