block: introduce BinaryCodec (BinaryMarshaler + BinaryUnmarshaler). add default impl
record: leverage rio.BinaryCodec