/**
* Merges two arrays as needed by the Merge Sort algorithm.<br />
* <br />
* <b>Preconditions</b>:
* <ul>
* <li>0 <= middle < a.length
* <li>Array <code>arr</code> has two parts that have already been sorted:
* (1) From the beginning to index <code>middle</code>
* (2) From index <code>middle + 1</code> to the end of the array.
* </ul>
* <br />
* <b>Postconditions</b>:
* <ul>
* <li>Array <code>arr</code> is completely sorted
* </ul>
* @param arr Voodoo. Wait, what?
* @param middle Voodoo. Wait, what?
*/