better presentation for text search results and injected lang background
set default recent files to 50 (Search Everywhere needs this)
Context menu item to open Dart-aware HTML files in Dartium browser
Remove (zen coding) string from template name and wrap-balloon title
[log] trivial refactoring: extract several utility methods
[log] refactor: split loadFirstPart in 2 methods to simplify the logic

Instead of using complex conditions inside loadFirstPart
(and they will become more complex when loading more details will be
needed for filtering implementation),
introduce two separate method for 2 different procedures:

* smartRefresh which loads some recent commits unordered, orders them
  and connects to the existing log structure via the VcsLogJoiner.

* loadFromVcs which loads the given number of recent commits ordered,
  and substitutes the list of top commits.

  The latter should be used only for initialization procedure,
  when the whole log is not ready, and for reading more commits which
  will be needed for filtering.

  It is assumed that if loadFromVcs is called after the whole
  log skeleton has been initialized, it doesn't receive new commits
  that doesn't exist in the whole log.

  However, if that happens, it shouldn't break the subsequent
  smartRefresh: the joiner will just connect new commits to an older
  log structure
  (and request more commits if the given patch is not enough).

Additionally, move runInBackground() call out from the refreshing
methods to simplify them, and the calling method execute several
operations on the LogData synchronously (in a single queue task).
[log] Load more details if there is not enough for current filter.

* Hook into AbstractVcsLogTableModel#getValueAt. If the last value is
  requested, then the last row is visible => probably there is empty
  space below it => more details can and should be loaded.
  It is possible that there is no empty space below, i.e. the last line
  completely fits the bottom of the table, but it is not critical to
  load more anyway.

  Also hook into VcsLogFilterer: if the model is empty,
  getValueAt won't be called => need to request loading more
  right away.

* In case of GraphTableModel, just show the whole log structure
  instead of the top part of it.
  (this can be optimize to show only one more part instead of the
  full log which may be too huge).

  This situation can happen if one selects some old branch,
  and it also handles the case when user just scrolls down until
  reaches the end of the loaded part of the log (even without filters).

* In case of NoGraphTableModel, request more details of the recent
  commits and apply filters to them.

VcsLogDataHolder:

* Introduce loadMoreDetails which checks how many commits from the
  top was already loaded, and requests twice as more.
  Limit such requests by 10: without any limit the log could load all
  details of the entire log which would consume a lot of memory.

  If limit is reached, we should ask the VCS to provide filtered
  commits, this will be implemented in the next commit.

* Make showFullLog to wait until the entire log skeleton is loaded.

* Reset necessary fields (state flags, clear the cache) on complete
  refresh.
[log] cleanup
[log] optimize check if hash corresponds to a visible node

Store not only visible nodes, but also hashes of them.
[log] Store information about root in VcsShortCommitDetails

This will simplify showing filtered details in multi-root setup:
no need to query the graph about node-for-hash and get the root from
the Node's Branch, as well as no need to operate complex details+root
structures.
[log] Move VcsLogFilter to vcs-log-api

It will be passed to VcsLogProviders when we'll request VCSs to
filter details by themselves.
[log] Load filtered details from the VCS if nothing found

* NoGraphTableModel: if all possible recent details were loaded,
  ask the filterer to request the VCS.

* The filterer delegates to the VcsLogDataHolder,
  and updates the model when the result is received.

  Important note: the model now has allowLoadingMoreRequest flag,
  setting which to false prevents the model asking to loadMore. This
  flag is set after getting results from the VCS: we can't load more,
  this is the final result.

* The VcsLogDataHolder asks VcsLogProviders, and merged results from
  different roots.

* Implement the method for Git: use --author, --branch and --grep
  parameters.
[log] More descriptive text on the progress indicator
[log] check for isDisposed in invokeAndWait()
IDEA-106488 Separate highlighting of namespace prefix and tag name