Big decode documentation improvement; add VPeekNext()

This re-orients the documentation for decode error handling to use of the internal error state by encouraging use of VGetNext and VPeekNext.  VPeekNext is added.

This is completely backwards compatible.

Lots of other decode documentation improvements.

The deprecated tags functions are moved to a deprecated section.
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index 801761f..2be12d9 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -2236,7 +2236,7 @@
 
    const uint8_t uQCBORType = StringTagMap[uIndex].uQCBORtype;
    if(uQCBORType == QCBOR_TYPE_NONE) {
-      /* repurpose this error to mean, not handled here */
+      /* repurpose this error to mean not handled here */
       return QCBOR_ERR_UNSUPPORTED;
    }
 
@@ -2380,6 +2380,20 @@
 /*
  * Public function, see header qcbor/qcbor_decode.h file
  */
+void
+QCBORDecode_VPeekNext(QCBORDecodeContext *pMe, QCBORItem *pDecodedItem)
+{
+   if(pMe->uLastError != QCBOR_SUCCESS) {
+      return;
+   }
+
+   pMe->uLastError = (uint8_t)QCBORDecode_PeekNext(pMe, pDecodedItem);
+}
+
+
+/*
+ * Public function, see header qcbor/qcbor_decode.h file
+ */
 void QCBORDecode_VGetNext(QCBORDecodeContext *pMe, QCBORItem *pDecodedItem)
 {
    if(pMe->uLastError != QCBOR_SUCCESS) {
@@ -2704,9 +2718,7 @@
       return QCBOR_ERR_MEM_POOL_SIZE;
    }
 
-   pMe->StringAllocator.pfAllocator    = MemPool_Function;
-   pMe->StringAllocator.pAllocateCxt  = Pool.ptr;
-   pMe->bStringAllocateAll             = bAllStrings;
+   QCBORDecode_SetUpAllocator(pMe, MemPool_Function, Pool.ptr, bAllStrings);
 
    return QCBOR_SUCCESS;
 }