Fix JIRA-983 and support exteranl sort for sortByKey

Change class ExternalAppendOnlyMap and make it support customized comparator function(not only sorted by hashCode).
nit: add braces for `if`
```
if (...) {
  return kcPairs
}
```