Resolved Synchronization Errors/Complexity

Resolved Synchronization Errors/Complexity

- Communicator previously invoked abstract onEntityShared and
onEntityUnshared when entities are shared and unshared. These were
invoked through the communicator's remote binding's threads, meaning
there may have been various threads running through the modules which
implemented Communicator. Objects are now notified by adding observers
to the communicator. The observers are notified synchronously by the
thread which invokes poll() on the communicator.

- Synchronization error causing concurrent modification exception on
ClientCommunicator's m_sharedEntities member was resolved by removing
potential for threading errors by making above revisions.

- Code was changed lightly to accommodate for above revisions to
communicator.

Jeremy. Allen. Wildsmith