Add class Spec to support various drafts.

Define symbol COAPALL to enable all supported drafts, and specific
symbol like COAP08 to build only with certain version of draft.
update layers
remove Encode and Decode methods from Message
update test
add request subscription to ObservingManager
move OptionType into separate file
move FencepostDivisor into Spec.Draft08
 into
clean up
lots of minor changes and comments
Re-numbered option numbers to the latest draft (13)
reconstruct Communicator

Communicator can now be initialized by a Spec.
Messages will prefer the context communicator to the static default
communicator.
call SendMessageOverLowerLayer() rather than Accpet() or Reject() in lower layers
update endpoint and resource
make ObservingManager public and minor changes
add IShutdown to control UDPLayer
add Communicator factory methods
update server samples
update server samples
add implementation of CoAP 03
add class ByteArrayUtils