Improved TopPipe performance by 600x

* made Expression.isDeterministic a val
* use a tuple with extracted context values for sorting, remove the need to re-lookup each expression value
* implement proper top-n select using a "runtime" approach with Arrays and binarySearch
Merge pull request #2230 from jexp/top-pipe-performance

Improved TopPipe performance by 600x
System.currentTimeMillis resolution is so bad that sometimes two consecutive calls will return the same value, which caused sporadic failure in TestLockManagerBean
Show com exceptions from pull updates.