[log] Let VcsLogObjectsFactory be project service & depend on VcsLogManager

This will allow the factory implementation to access data stored in
the VcsLogDataHolder, etc.
Will be used later for collecting the list of commit authors.
[log] Encapsulate author & committer into VcsUser
[log] intern VcsUsers.

Introduce VcsUserRegistry to hold all users in the log.
[log] Completion in filter by user

* Make sure VcsLogDataHolder is instantiated when VcsLogManager may
  be requested for it (in the previous situation there were no
  VcsLogManager instance available during the init() procedure which
  made access to its field (user registry in particular) impossible
  during initialization.

* Store users received during initial load and refresh in the
  VcsUserRegistry.

* Let user selection text field be a TextFieldWithAutoCompletion with
  users list taken from the registry.
[log] Collect user information from the whole log

* Let VcsLogProvider.readAllHashes provide this information into the
  given Consumer.
  We don't want to embed this information into the TimedVcsCommit or
  to request some TimedAuthoredVcsCommit to avoid unnecessary
  conversion and possible memory pollution in the case if the log
  provider uses incorrect method to create a VcsUser (the reference
  to the VcsUser object will be stored anyway).
  We also don't want to return something as complex as
  Pair<Set<VcsUser>, List<TimedVcsCommit>.
  Therefore a Consumer looks like a better decision.

* Pass the consumer that simply record the given user to the
  VcsUserRegistry.
[log] IDEA-115966 Show HAND cursor over branch arrows

Two mouse listeners (issue link navigation & arrow) were conflicting
with each other.

Use a single mouse listener (ours) and delegate to the
TableLinkMouseListener for mouseMoved and mouseClicked.
fix BooleanParameterInspectionTest