Fixed #2 in Communicator library

Fixed #2 in Communicator library

- Revised the name addListener and removeListener in SharedEntity to
bindCommunicator and unbindCommunicator respectively as to have the name
more accurately represent their function. Both functions have now been
given default protection level to keep them from being used outside of
the communicator library.

- Resolved issue #2 .
The issue was caused by a communicator unbinding itself from a shared
entity after enqueuing a message to that shared entity. When the shared
entity processed the queued message, it responded by sending data to
that communicator that had since unbound itself. Since the communicator
was no longer bound, it did not have a pair entry for that shared entity
and thus it threw a NoSuchElementException when looking up the paired
entity.

Messages are now dropped if they are dispatched to a communicator (from
a shared entity) that is not bound to that shared entity.

Jeremy. Allen. Wildsmith