Bind2Csv2 will be written in Python.

Its design will be very similar to the csv2 parser design.  It will use
a modified finite state machine.

Like the csv2 parser, we will have regexes and actions.  The regexes will
match one character by character, just like the csv2 parser.  Actions will
be things like "copy the character to the output" or "put a ; in the output".

This parser is a little trickey because we have a couple of corner cases.
Namely, the WKS and LOC record, both of which take a variable number
of arguments.   The csv2 parser handles this by making the newline mean
only "end of record" when we are in the part of the record that takes a
vaiable number of arguments.  The problem with this is that if the
BIND zone file has comments interspersed with these arguments, the csv2
zone file will need to put all of the comments either before or after
the last variable-number-of-argument.  I think it makes more sense to put
things after.

The other thing that is tricky is that we're taking a human-readable file
for one file format and making it an (almost identical) human-readable
file in another file format.  So we need to preserve the arrangement of 
the file as much as possible.

So, lets design the state machine

Actions: 

1) Copy the character as-is from the input to the output

2) Place a given character (such as ; or space) or sequence of characters
   on the output

3) Place nothing on the output

4) Place the character as-is on the output, and add it to the temporary 
   storage

5) Place nothing on the output, and add it to the temporary storage

6) Place nothing on the output, and add another character (such as ;) to
   the temprary storage.


