Minor changes

D2TreeCore.java
* removed some comments.
* moved forwardCheckBalanceRequest right after JoinRequest to better represent runtime call sequence.
* turned the type of some variables from long into int.

D2TreeMessageT.java
* added the following type of message: REDISTRIBUTE_SETUP_REQ

TransferRequest.java
* Removed the variable firstPass as it's no longer used.
* Added the variable passes which will be used to optimize the transfer procedure (multiple transfers at once).

MISC
* Added a new message class: "RedistributionSetupRequest.java". This will traverse the buckets of a subtree, marking them as busy and computing at the same time their total size.
Various redistribution fixes. Created the RedistributionCore class to take on some of the responsibilities of D2TreeCore.

D2TreeCore.java
* Now stores redistribution data in an autonomous class, instead of a HashMap. (replaced HashMap<Key, Long> redistData with RedistributionCore redistCore)
* Relocated some of the keys that are specifically meant to be used during the redistribution to the RedistributionCore class.
* New peer mode REDISTRIBUTION_PREPARE marks leaves about to be redistributed.
* Leaves in REDISTRIBUTION_PREPARE mode now report every join/departure in their bucket, storing its surplus in redistCore.surplus (increaseSurplus() is called during joins and decreaseSurplus() during departures)
* RedistributionSetupRequest is called after each balance check. It traverses the leaves of the subtree about to be redistributed and counts the total size of their buckets. It then sends a message to the rightmost leaf (initial pivotBucket) of the subtree, and the redistribution process begins.
* Various minor fixes in storing redistribution data to better accommodate the procedure.
* Formatting changes.

RedistributionCore.java
* This class keeps all the redistribution information pertaining to a peer (including the id of the subtree that started the redistribution, the total size of the remaining buckets and their quantity).

RedistributionRequest.java
* Modified the packet to carry the size of the pivot bucket, instead of its difference to optimal. This is more flexible, as it ensures that the redistribution process can work, even when the optimal bucket size is changed (due to node joins/departures).

RedistributionResponse.java
* It now holds the number of unchecked bucket nodes. This ensures that it will be always current, even when the redistribution process is moved from one bucket to another.

RedistributionSetupRequest.java
* Added some functions to help with setting up the redistribution.