Changed algorithm used to pick block and thread dimensions. It no longer tried to find the most square, instead it tries to find the most right. Done by brute forcing through all the factors, to see if any of the combinatoins are good or not. If not exception is thrown because we don't want any incomplete runs to mess with timing.
Merge branch 'opt_testing' of github.com:jshearer/ParallelProjects into opt_testing