Change data storage type in TopNNumericResultBuilder.

  * Use PriorityQueue to store
  * Checks to see if should even bother adding to Queue before adding.
  * Re-orders Queue on build() call.
  * Ideally the order would be directly preserved on build(), but this is a close second.
No, not quite, the difference is in the polarity of the metric comparator. A Sort-Reverse of the dimValComparator causes it have aliasing issues that failed a few unit tests that had equal values but different dimName sortings. Doing it this way maintains legacy behavior as far as I can tell.