move CBOR tag handlers to separate classes, and fix a bug when reading smaller negative bignums