Decode conformance for preferred serialization, CDE and dCBOR (#216)

Three conformance modes are added for decoding
- preferred serialization
- CDE
- dCBOR

This checks for sort ordering and duplicate labels when a map is decoded in CDE and dCBOR modes.

It does not support arrays and maps as map labels. They will error out, unless you use maps-as-arrays mode.

Conformance includes checking for shortest form of integers and floats and for dCBOR unification of floats and integers.


* start work on dCBOR decoding enforcement

* checkpoint

* Floating point conformane; ifdef for disabling

* Add more tests

* More dCBOR tests and conformance checks

* More test cases

* Bug fixes and more tests

* Check point stuff

* Map dup and sort order checking kind of working

* more work...

* Finish off UsefulInputBuf_Compare()

* Fix #ifdef fanout

* Fix warnings and #ifdef fan out

* sort & dup checking working and tested

* Fix test ifdef fan out

* Minor fix of one test case

* Another fan out fix

* backout map label checking; doc; test

* Stragglers

---------

Co-authored-by: Laurence Lundblade <lgl@securitytheory.com>
diff --git a/src/ieee754.h b/src/ieee754.h
index c893e6f..c82b9b4 100644
--- a/src/ieee754.h
+++ b/src/ieee754.h
@@ -223,7 +223,7 @@
  * represent a NaN.
  */
 int
-IEEE754_IsNotStandardDoubleNaN(double dNum);
+IEEE754_DoubleHasNaNPayload(double dNum);
 
 
 
@@ -234,11 +234,11 @@
  *
  * @returns 0 if a quiet NaN, 1 if it has a payload.
  *
- * See IEEE754_IsNotStandardDoubleNaN(). A single precision quiet NaN
+ * See IEEE754_DoubleHasNaNPayload(). A single precision quiet NaN
  * is 0x7fc00000.
  */
 int
-IEEE754_IsNotStandardSingleNaN(float fNum);
+IEEE754_SingleHasNaNPayload(float fNum);
 
 
 #endif /* ieee754_h */