- currently we make a few assumptions in the field data based aggregations base on which we decide on execution paths, e.g. initial buffer sizes we use for ordinal arrays.

- also, in geo distance, because it's based on range agg and that by default the order of the geo point per doc is unknown, always wrap it in a dedicated field data source which sorts the values if needed. But most of the times, a doc will be associated with a single point and therefore most of this wrapping is redundant and adds perf. cost for nothing.

- the idea here is for every request that "hits" a field data agg, we'll first iterate over the searchable segments and load their field data and compute the cross-segment info out of them. This info will be placed in the field context with which the value sources are created.

- we currently have some of this info on the IndexFieldData, but problem with getting it from there is that we may easily end up getting wrong info that originate in unsearchable segments.
Add table concatenation.
Add associative lookup of columns for arbitrary (and more intuitive) ordering.

  % curl 'localhost:9200/_cat/nodes?v&headers=jdk,ip,name'
  jdk      ip        name
  1.7.0_40 127.0.0.1 Mordo, Karl

Closes #4433.
Turn off some columns by default in cat/nodes.
Round load avg in _cat/nodes.
Add column separator for help output.
[DOCS] Add headers and help parameters.