Fixed a few redistribution issues and re-organized the code.

D2TreeCore.java
* Refactored forwardRedistributionRequest() and split it into:
****  setupRedistribution(Message) - Initial procedure responsible to set up the current bucket. The first thing to run in forwardRedistributionRequest.
****  moveToLeaf(Message) - This is part of the setup and its goal is to reach the rightmost leaf of the uneven subtree (the first pivot bucket of the redistribution) if we're not already there.
****  endRedistribution(Message) - This resets the status of the bucket and sends a message to inform the root of the subtree that it's ok to check if the tree needs an extension or a contraction.
****  movePivot(Message) - This is used to move to a new pivot bucket. The old one is replaced with the one to its left. It runs when the size of the current pivot bucket is acceptable.
****  moveDest(Message) - This is used to move to a new dest bucket. The old one is replaced with the one to its left. It runs when the size of the current dest bucket is acceptable.
* Slightly changed the way forwardRedistributionRequest() works. Check first if pivot bucket is ok, then

RedistributionRequest.java
* Each data packet now includes the difference between the size of the dest and the pivot bucket.
* Each data packet now includes how close the dest bucket is to the leftmost leaf of the uneven subtree,
that is how many more dest nodes we can visit.

RoutingTable.java
* deleted some old commented out code and method "wasConsistent".

ExtendResponse.java
* Each data packet now includes the size of the pivot bucket.

Misc
* Formatting/class visibility changes.