better metric limits when querying elasticsearch

* implement limit_es_metrics config option
* set real limit_es option based on that, and context
  (aggregation vs no aggregation, and provided limit)
* log start/end of ES query
* display in UI metrics retrieved, and total (like before),
  but also the ES limit and show in orange when limit reached
* keep compiled patterns in query structure, and just pass
  updated query structure around, keeps things more elegant.
  ditto for limit_es, track it through the query structure.
refactor target color assignments to be more elegant