REFACTOR: generalize git_fetch_commits() to allow arbitrary command prodicing the same source
FIXUP: fix syntax
IMPL PARTIAL: fill parents at start
TRY: add FINALIZE_MERGEBASES schedule state

This is limited functionality state, which only cleanups tasks waiting for children.
No new path is to appear due to this change.
FIXUP: fix overwriting the next task
Merge master progress
TEST: add test for case when merge commit taken by `git-show`

`git show` has a feature or bug which makes it add a newline after merge.
This test is intended to detect it.
To prevent ordering issues there are several merge parents
TRY: workaround empty line returned by git-show
IMPL: remove ahash picking during merge

Now we should always have parents resolved.
IMPL: store also tree hash in commit info
IMPL: remove the last call of git from make_merge_steps()
TEST: copy inner_merge_after_merge to unit tests

This is how it is going to look. Something could be made shorter,
but in general this is the way to go.
gh-29: implemented

* implement collecting parents information
* fix find_sequence() issues when `$commits` contains information about
  merges before `from`
* remove IO from build_rebase_sequence()
* add example test