Refactor confirmation handling and optimize synchronisation logic.

This refactors confirmation handling to reduce the number of events registered against
the OnReceive event.

This also optimizes the synchronisation logic so that it only sets the property in the
synchronisation store if the value actually differs from the current value.  This
prevents the server from sending unnecessary updates to clients when the values
haven't actually changed.