add tests and solutions for problems 5-7; the HUnit testcase for flatten on an empty list requires a concrete polymorphic type declaration, e.g. (NestedList Int)