Revised 21/6/2013

Multi-threading introduced, allowing requests to be assigned to multiple
MATLAB sessions. Reconstructed many classes to achieve better
inheritance, which made creating classes for new MATLAB functions
easier.