Split Coap class into three smaller classes

Split Coap protocol class into three classes: Coap, Requester and
Responder
Lots of cleaning and code reuse.