Graph Black Box refactoring initial step
some javadocs & GraphInfoProvider extraction
GraphColorManager
remove unused methods
Transition to GraphFacade, step 1: getVisibleCommits(), getRoot()
Transition to GraphFacade, step 2: setVisibleBranches
Transition to GraphFacade, step 3: expansion actions

Dumb performAction() implementation with instanceofs and else.
Actions are also located in the api, maybe it will change in future.
Transition to GraphFacade, step 4: click to row

+ no need to call click from jumpToRow: it will be called from
selectionChanged() anyway
optimize getOneOfHeads: store it in Branch instead of the VirtualFile.
javadocs
remove getVisibleCommits since we've got getVisibleCommitCount & getCommitAtRow

Add a utility method
optimize search commit by part of hash

iterate over persisted hashes to get the Hash from string
rename to GraphFacade
GraphAnswer interface
rename & check link listener first
GraphColorManager: more methods + javadocs
Move clicks & hovers to the GraphFacade

* Remove root column stuff from the GraphCellPainter.
  Calculate multi-root offset from VcsLogGraphTable and pass the
  relative point shifted by this offset.
  Painting was not modified => it is broken for multi-roots,
  the painting change will follow.

* GraphPrintCell is temporary passed to the actions.

+ Modify GraphInfoProvider interface (was lazy to split commits).
[log] Delegate graph painting to the GraphFacade

* Remove the GraphPrintCell from the GraphCommitCell & actions: the
  graph facade is be able to get the print cell by row
  from the print cell model.
* Move graph painting to GraphFacadeImpl.
  Paint on an image; return the image and the width for text padding.
* Rewrite AbstractPaddingCellRender & descendants: move refs painting
  to the parent, since it is used in both renderers.
  prepare the image in getCellRenderer, use it in paint().
Override paintComponent() instead of paint().

As recommended by JDK javadocs.
[log] remove unused stuff from the DataPack.