Broke up the AB protocol files into more manageable sizes.  The different
sub-protocols are now in their own files.  Common functionality has been
moved into a few files like common.c, pccc.c and cip.c.  Future work may
go to create an eip.c as well.

The debug tag attribute is now handled in more places.

Changed the way that reads work: the first time a tag is read, it
is read in sequential chunks.  Each request completes before the next
one starts.  The sizes of the responses are recorded.  This is needed
because the PLC will chunk up the responses in ways that are not always
that obvious.  Subsequent writes will set up and start all the requests
in one shot.  Note that for tags that fit in one response packet
(about 496 bytes or so), there will be no difference in behavior.

Warning: the first read can take a lot longer than before.  Use longer
timeouts for the first read.

Changed the way that writes are handled: If the tag has not been read
before a write is started, the tag will be read first, but the data will
be dropped.  This gets the data type information for the tag.  Then
the write will complete.