Improved reliability by adding priority execution for System Operations.

In the old approach, system operations like partition movement, member joining/leaving the cluster,
were put on the same queue as regular operations like map.put. The problem is that when the system
is overloaded and the queues are full, that the Hazelcast cluster will not be able to deal correctly
with cluster changes, because system operations can't be executed quickly.

This PR change that behavior by introducing the SystemOperation marker interface and executing these
operations with a higher priority than regular operations.