Parallelize multi-class solution when possible

This essentially follows the pattern of the OpenMP parallelization approach mentioned in the liblinear FAQ, and maintains the same code flow as the single threaded version (with the exception of making some necessary variables final and slightly altering assignments).  I have validated it on a couple of datasets [here](http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html) and it produces equivalent results to the single-threaded solver.