Refactored MLlib tests to run different Spark builds for the same algorithm

The MLlib tests were separated into different sub-projects in order to build old MLlib algorithms with older Spark builds in order to test for regression. The build is tricky and some comments are under mllib-tests/project/Build.scala