support TLVs with flexible size

These flexible TLVs don't need to be represented as a single packed
struct directly in the message buffer. Instead a separate struct
contains pointers to the individual parts of the TLV in the message
buffer. The flexible TLV can only be the last TLV in a message.

Signed-off-by: Geoff Salmon <gsalmon@se-instruments.com>
adds CLOCK_DESCRIPTION struct

Modifies existing structs changing Octet *foo -> Octet foo[0] and
marks them PACKED so the message buffer can be cast to the structs.

Signed-off-by: Geoff Salmon <gsalmon@se-instruments.com>
support GET CLOCK_DESCRIPTION and USER_DESCRIPTION mgmt messages

Signed-off-by: Geoff Salmon <gsalmon@se-instruments.com>
pmc: get CLOCK_DESCRIPTION and USER_DESCRIPTION

Signed-off-by: Geoff Salmon <gsalmon@se-instruments.com>