pldata/crc16: fix import pldata -> data_util
pldata.mkvcomblob: add --check option to check blob file
pldata.mkvcomblob: some code tidy-up
pldata.mkwfblob: add --check option to check blob file
pldata.data_util: rename dump_blob -> dump_hex + fix newline
pldata: add blob module

Add the pldata.blob module with Blob class to manage the format
of a binary blob both for packing and unpacking the data.  This
uses a list of BlobEntry objects to describe the packed format
and storing/extracting the data to/from a dictionary with all
the entries.

This also includes specific StringEntry and CRC16Entry classes
to deal with fixed-length strings and CRC16 check which throws
an exception if the computed CRC value doesn't match with the
one retrieved from the data (when unpacking).

Each entry also has a `dump' method to print out its content.
pldata.mkvcomblob: use pldata.blob.Blob
pldata.mkvwfblob: use pldata.blob.Blob
pldata: add dump.py to dump the contents of a blob

Add a command-line utility script to print out the contents
of a binary blob file with a known format, using the
pldata.blob.Blob implementation.  This currently supports
the display (waveform) and VCOM PSU calibration blobs.
pldata.mkwfblob: create separate header Blob

Separate the entries for the header part (vermagic + info + CRC)
from the waveform data part, which enables reading the size of
the waveform data in the header before reading the waveform
data.
pldata: tweak dump format
pldata.blob: strip StringEntry.unpack + tweak dump
pldata.mkwfblob: rename panel_* -> display_* for consistency
pldata.mkwfblob: add test function
pldata.blob: add test function
pldata.mkwfblob: use pldata.blob.test
pldata.mkvcomblob: add test function
pldata.blob: fix string dump
pldata.dump: add format choices
pldata.data_util.dump_hex: add maxlen optional argument

When maxlen is specified, only print at most maxlen bytes
and then ... to show there is more data.