Change Term data structure from binary tree to rose tree (close #2, close #7)

There must be no superfluous parentheses when parsing. Rendering also omits them. For example:

((K K) K) is now written (K K K)

Evaluation follows normal order as before, but arguments are evaluated in parallel instead of sequentially. For example, notice that the two arguments to the irreducible S are both evaluated in one step:

(S (K K K) (K (K K K)))
(S K (K K))

All tests have been rewritten as String input and output to avoid ridiculously long Haskell values.