Improve frontend performance by fully clusterizing jobs

The earlier implementation clustered jobs together for matching, but
used the unclustered list for computing the unique set of matches
(uniqueSets).  This uses clustering throughout, improving performance by
factors of 30 in production.

Conflicts:

	frontend/glideinFrontendLib.py
Fix trailing whitespace
Document the indexing algo
3150: Adding comments to code

Conflicts:

	frontend/glideinFrontendLib.py
Fix comments

Conflicts:

	frontend/glideinFrontendLib.py
Merge branch 'master_3196' into master_2905
Some code and whitespace cleanup and converted some TODOs to tickets