Feature/coap

**DO NOT MERGE**
CoAP support implementation draft
Seems like you do identical work (first 2-3 lines) in each 'case'.
Perhaps you should move 

         char buffer[options[i].optionValueLength + 1];
         memcpy(&buffer, options[i].optionValuePointer, options[i].optionValueLength);
         buffer[options[i].optionValueLength] = '\0';

to before the switch.
That way (adding std::string string also) you avoid also to surround the case contents in brackets ...