Add getting un decoded arrays and maps (#117)

This adds QCBORDecode_GetArray() and QCBORDecode_GetMap() plus friends. They return undecoded arrays and maps so they can be passed on to other decoder instances or such.

This also adds UsefulBuf_OffsetToPointer() and UsefulInputBuf_PointerToOffset() to UsefulBuf.

Consume no longer validates standard tags like big floats when it is consuming stuff. It still checks for CBOR that is not well formed.

There was some internal restructuring of array and map processing, but the tests are thorough and they are all passing.

This is to address #112



* getting started on returning arrays

* progress...

* returning maps and arrays mostly working

* Checkpoint progress

* Checkpoint: mostly working

* checkpoint -- it is working

* OffsetToPtr documentation and test

* test and documentation

* Fix Get() of nested indef arrays and maps

* Test tags; doc fixes

* Fix #ifdef test fan out

* Last bit of documentation update

---------

Co-authored-by: Laurence Lundblade <lgl@securitytheory.com>
diff --git a/test/qcbor_decode_tests.h b/test/qcbor_decode_tests.h
index 8d26c98..b23149a 100644
--- a/test/qcbor_decode_tests.h
+++ b/test/qcbor_decode_tests.h
@@ -323,6 +323,11 @@
 int32_t ErrorHandlingTests(void);
 
 
+/*
+ * Test QCBORDecode_GetArray and QCBORDecode_GetMap
+ */
+int32_t GetMapAndArrayTest(void);
+
 int32_t TellTests(void);