[git] Update the widget content on click.

Maybe will help in investigation of IDEA-113231: if the branch will
update after click, therefore the repository change event was
received, and it is purely a widget update problem.
(cherry picked from commit e52b7db)
[log] extract SequentialLimitedLifoExecutor from DataGetter for reuse
(cherry picked from commit 55ad98c)
[log] IDEA-116470 Show "Contained in branches:" information in details

* Improve RefsModel to be able to find references by indices,
  not hashes.
* Introduce ContainingBranchesGetter:
  - holds a background queue to calculate the information asynchronously
  - calculates by walking up the graph starting from the given nodes.
  - saves the calculated value in the cache.
  - if there is already information about some node in the cache,
    reuse it and don't walk over this graph branch.
  - clear the cache from VcsLogDataHolder on smart refresh,
    if references have changed; and at any case during initial refresh.
(cherry picked from commit fd8772d)
[log] Don't hide "Go to ref" action when focus is not in the log

Set target component for the log's ActionToolbar to MainFrame,
to make the Log instance available in the DataContext.
(cherry picked from commit 538fcaf)
[log] No need in "Copy Hash" action on the toolbar
(cherry picked from commit 4d1e0c0)
[log] More clear name for "Go To Ref" action
(cherry picked from commit 73ae4b2)
[log] Show details panel by default (as it were in the old log)
(cherry picked from commit 7ad802c)
[log] Don't display "Loading..." immediately, let a 300ms delay

For instance, "Containing branches" information is calculated
frequently, but fast => blinking "Loading..." doesn't look good.
(cherry picked from commit 662f63c)
[log] Fix possible race conditions in "Containing branches"

* For the sake of simplicity allow a single loading-finished-listener;
  Ensure it is accessed only from the EDT.
* Recreate the cache (instead of clearing) on refresh.
  Make the field volatile; make all other operations with the cache
  appear in the EDT.
* Store the cache instance in Task, and put the calculated node
  information into the stored cache instance instead of myCache,
  to make sure that if log refresh happens during containing branches
  calculation, the result of the calculation will be put into the
  obsolete cache instance.
* Clear the queue on log refresh (this not important,
  but those tasks would operate on the obsolete DataPack anyway).
* Notify the listener after clearing the cache, to re-query information
  about the commit user was staying during the log refresh.
(cherry picked from commit 307f301)