Add channel metadata to data blocks
This MR tracks a richer set of metadata for data blocks, providing a way to publish metadata alongside data in the future. Currently, we can detect when the metadata for a set of channels changes during publishing, but this is only used currently to check the subsystem in the publishing stage.
Because we also add sampling rate and data type information in Channel
now, this paves the way to return metadata associated with the find_channels and count_channels queries as well.