Use params for event log query (See #12279)

The memory dump from the demo server had over 800MB tied up
in `char[]` all belonging to the `Launcher$AppClassLoader`.
Nearly all of them (>400K instances) were of the form:

  `select el from EventLog el where el.id > SOMEID`

That change is from roughly 2009 yet I've never seen
precisely this issue. Perhaps the recent move of the
`flush()` invocation was leaving more instances dangling.
In any event, this should collapse all 400K instances
down to one.
Reduce query string generation

Rather than generate a new query string on every
loop, a string is now only created when the `excludes`
argument is changed, plus one time on first usage if
no `excludes` value was set.
Move excludes comment to initQueryString docs
Merge pull request #2517 from joshmoore/rebased/develop/12279-eventlog-query

EventLog Query (trac-12279) (rebased onto develop)