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.
I don't see null values covered anywhere in unit tests. Is there a scenario you can think of we can test for that would cause a null value?