Refactor to module Convert

The conversion function is about to be needed by another module, who
shouldn't depend on Main.
meta-test: a doctest for testSyntax

Which is itself used to test much of the rest of the code.
meta-test: a doctest for testIso

Which is itself used to test the isomorphisms.
test all the things! (isomorphisms)
document all the things! (Syntax.Extra)
invertible splitAt
Refactor to function "swap"

Looks handy.
the mplus of partial isomorphisms
Refactor to method "cdr"

also handy.
Split Partial/Extra into three

It was getting a bit long. Split according to the files in which each
function would probably have been included if they were part of the
upstream package.
Unique doc text for each of the three Extras
Invertible lookup

Now we're starting to get quite sophisticated invertible functions!
Move to Data.Pattern

and split into sub-modules.
Clarify type signatures

With isomorphisms, the signatures often give a lot more information
about what's going on that the code does, because the pervasive
pointfree-style obscures its meaning.
Improve the documentation

In particular, we now use haddock's @...@ syntax to print code in
monospace font.
Patterns, a combinator library

I'm really proud of this one! It's a combinator library for describing
patterns, in the sense of pattern-matching.

Since the implementation is based on my invertible version of lookup,
this means that pattern-matching is invertible! The inverse of
pattern-matching is substitution, in the sense that you can provide
values for each pattern variable and thereby build a closed term.

Using defineIsomorphisms, you can easily create patterns for arbitrary
custom datatypes. One major limitation of the library, however, is that
the holes must all have the same type, i.e. if you have a heterogeneous
pair (1, "a"), you can use the pattern (var "x" <*> pure "a") to match
the 1, you can use the pattern (pure 1 <*> var "y") to match the "a",
but unfortunately you can't use the pattern (var "x" <*> var "y") to
match both.