Various controlled partitioning improvements:

* added the DistributedObject.getPartitionKey()
* deprecated the DistributedObject.getId()
* added the HazelcastInstance.getLock(String)
* deprecated the HazelcastInstance.getLock(Object)
* added the HazelcastInstance.getDistributedObject(String,String)
* deprecated the HazelcastInstance.getDistributedObject(String,Object)
* cleaned up the tests for controlled partitioning
Improved testing; verifies that task/map/distributed objects can be found in the same partition
Minor test improvements
Added randomPartitionKey functionality on PartitionService
Merge pull request #783 from pveentjer/improvement/3.x/partitionkey

Controllable partitioning