coverage: build trove4j to be compatible with 1.5
IDEA-122283 Notification.expire() doesn't work if Event Log toolwindow hasn't been activated yet
EA-54739 - assert: QuickEditHandler.<init>
[log] Simplify code & comments: no need to consider recent commit count

Just walk from the top of the log until found the first detail that
is not in the cache.
[log] cleanup
[log] IDEA-121969 Don't load Changes on start and refresh

For Git and especially for Mercurial loading changed files
(with statuses) significantly increases the time of the log
command.

=> Don't load changes on start or on refresh, but keep loading
other commit metadata. Changes will be loaded on demand when
commit will be selected.

* Thus introduce VcsMediumCommitDetails to hold everything but Changes.
* Remove VcsFullCommitDetailsImpl substituting it by already existing
  more efficient implementation VcsChangesLazilyParsedDetails.
* Rename VcsCommitDetailsExceptChanges to VcsMediumCommitDetailsImpl.
* Let the top commit details cache (in VcsLogDataHolder) hold
  VcsMediumCommitDetails since they are loaded during initialization.
* CommitDetailsGetter can't request to top details cache anymore,
  but MiniDetailsGetter can => introduce getFromAdditionalCache
  to reuse the cache.
* VcsLogDetailsFilter now needs VcsMediumCommitDetails
  to match in memory, except VcsLogStructureFilter, but introducing
  some additional filter type would be an overhead for this
  (especially if this non-perfect filter architecture changes in future)
  => just add an instance-of check.
[git log] IDEA-121969 don't request changes on start & refresh
[git] fix typo in comment
[log] invokeAndWait instead of invokeLater

Otherwise instructions after runUnderModalProgress will race with
instructions inside invokeLater.
[log] Preselect the first commit on log initialization

It also solves the problem of loading Changes in background right
after log initialization (IDEA-121969).