STASHDEV-7996: Added drain method to PartitionService interface. In the client this simply returns. In the cluster member it removes the PARTITION_HOST Capability from the local member and awaits for all partitions owned by the local member to migrate. If the local node is the only member returned by getPartitionHosts then we assume the data cannot be drained.

Conflicts:
	hazelcast/src/main/java/com/hazelcast/core/PartitionService.java
	hazelcast/src/main/java/com/hazelcast/partition/impl/InternalPartitionServiceImpl.java
Now using MemberCapabilityUpdateRequestOperation properly

Conflicts:
	hazelcast/src/main/java/com/hazelcast/instance/MemberImpl.java
STASHDEV-7996: Removed EXECUTOR capability from enum
STASHDEV-7996: Now using MemberCapabilityUpdateRequestOperation correctly
STASHDEV-7996: Added comments for the behavior of the drain logic
STASHDEV-7996: updated @since version