Add DiscriminatorCodec and ProvideCodec, add useful toString methods to existing codecs