Add NOTSETUP value to enum to capture non-setup recording parameters

Hard to use any other solution, the default constructor must be
"invalid" and the setup command must transition the recording parameter
state yet further.
Add methods for fetching type and length of recording parameter

For storage reasons the type and length, since small in value range, had
to be cramped into a single char, there should be methods for packing
and unpacking the data. Masking and bit-shifting should be kept strictly
internal. (Struct member is not private though, it is still a struct).
Use std::array instead of std::vector tracking recorders

For some reason the std::array is ~25% faster than std::vector, the
look-up is a simple index one but still std::array is faster.
Add print function for data items (debugging only)