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.