Structural changes, making the code more concrete

GetSubtreeSizeRequest.java
 *Added peer mode as a parameter because we need to know which mode the request is made for.

GetSubtreeSizeResponse.java
 *Added peer mode as a parameter because we need to know which mode the request is made for.

RoutingTable.java
 *Turned all setters into a single method set(role, value) and a variant with three parameters set(role, index, long value)
 *Turned all getters into a single method get(role )

ConnectMessage.java
 *Added a replace flag in this message class. In some cases we need to tell peers not to override their assigned values with new ones.

D2TreeCore.java
 *Added a new method, send, as a proxy between this class and Network, to better control (and debug) message sending.
 *Replaced all calls to routing table getters and setters by calls to the new get and set methods.
 *Fixed a bug in ExtendRequest that would incorrectly connect new leaves together.
 *When computing the size of a subtree, we now keep asking a peer's children for their size if data is not complete (i.e. one of the two if missing).
Extension mega-fix and various changes

D2TreeCore.java
* Replaced all instances of Vector with ArrayList.
* Added an abstract list of peers to better debug the system.
* Organized the extend and contract operations in an enum.
* Added a method that checks whether a bucket needs extension or not.
* Added a method that turns old leaf to an inner node (disconnects it from its former bucket and creates link to newly created children leaves).

RoutingTable.java
* Removed LEFT_NEIGHBOR and RIGHT_NEIGHBOR roles. They're being handled by LEFT_RT and RIGHT_RT respectively (for index = 0)
* Replaced independent variables denoting neighboring peers with collection .
* Made the necessary changes in code to accommodate the aforementioned improvements.

Miscellaneous
* Replaced D2TreeMessageT.JOIN_RES type with D2TreeMessageT.CONNECT_MSG in D2TreeMessageT.java and in all call instances.
* Added a new constructor in DisconnectMessage.java and an index variable (for use in routing tables).
* Removed JoinResponse.java because it was never used.
* Added an optimalHeight variable in ExtendRequest messages to avoid wrongful extensions in cases when there's already an extension in progress.
Mini-fix

* Formatting fix
* D2TreeCore.java: The peers data structure is now used to print peer data instead of proper, real-world communication (which is slow).
Various formatting changes