Fixed Memory Leaks - Removing Exchanges from HashMaps when no longer needed

This patch fixes a few issues with messages in the CoapEndpoint.

1. Fixed some memory leaks, where exchanges were not properly deleted from HashMaps in the Matcher, including piggy-backed responses and NON-notifications.

2. Fixed an issue where the CoapClien was not able to cancel an observe relation

3. Fixed issue #7 to allow using block options for random access. One question remains (see discussion about issue #7)

With all fixes come JUnit tests to ensure that they do not break again in the future.