Merge the 2 enums shardcache_sig_hdr_t and shardcache_hdr_t

This is possible because the 2 value sets are not conflicting,
and there are run-time situations where we read a header byte
without knowing if it's going to be a regular header or a signature
header. Plus, some casting fixes.