cbor: Add allow_and_canonicalize_out_of_order_keys flag

Add `allow_and_canonicalize_out_of_order_keys` flag to the Reader
config. If it's set to `true`, CBOR reader will not check the key
order.

Add a `DUPLICATE_KEY` error which is returned instead of the
`KEY_OUT_OF_ORDER` error when CBOR map contains duplicate keys.

Bug: 1271599, b/204698553
Change-Id: I678bf276b7bafd3c4d91c847b34c7a73eef6a61a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3253307
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Jonathan Metzman <metzman@chromium.org>
Commit-Queue: Anastasiia N <anastasiian@chromium.org>
Cr-Commit-Position: refs/heads/main@{#943521}
NOKEYCHECK=True
GitOrigin-RevId: a63c5fba77533e5a5eda7ad7cca18cf0101f6d83
4 files changed