Feature/coap

**DO NOT MERGE**
CoAP support implementation draft
And almost the same again.
Here you have two different return values, so the first return cannot be removed. The rest is the same.