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.
@fjy is it correct to say that nulls should be kicked out of the results if other values exist? Or should nulls always be returned as top priority?