Refactored training phase algorithm:
  - now using kmeans to to find centroids over entire matrix for each projection as was originaly intended
  - this improves approximation run time and quality of results and scalability
  - as a trade off training phase time is increased

Added bruteforce algorithm for comparing results.
Merge pull request #3 from eric-kimbrel/master

Refactored training phase algorithm: