
zero'd checksum fields should be computed and set in __str__()

length fields should not be set except manually (maybe automatically
in set_data() methods?)

set_data() should do nice length field, zero'd checksum, named member,
etc. fixups like the unpacking constructor... maybe later

