tests: Add a small git repository and a first end-to-end test

The end-to-end tests will be stored in bash files following the convention:
1) Their file names will be in the form "tests-*.sh"
2) The tests will be declared as functions with names "test_*()"

The test added in this commit covers the test case where the branch is
specified, but no other "main branch reference" is. In that case, we
assume that the user wants to walk through all the entire branch, starting
from the first commit in the repository.

When adding this test, I've realised that the way I have implemented the
script is not the more intuitive one. What it currently does is assume that
the user wants to walk through the branch until the first commit that is
*not* contained in master. That's exactly the opposite of what it should
do. This needs to be fixed.
Makefile: Add `check-tests` and `check`

`make check-tests` will run the end-to-end tests and `make check` will
run all kinds of tests that can be run, which currently are "pylint" and
"end-to-end tests".
tests/run-tests.sh: Add verbosity for test runs

It's good to know what tests have failed and which ones have passed.
Otherwise, we can't know what wrong with the code.
tests/run-tests.sh: Store stdout and stderr of test runs

It's better to debug failures when we have stdout and stderr of the test
runs. If they pass, we don't care about them, so we just delete them.
git_history_walker.py: Make `test_branch_without_base_branch` pass

Change the implementation in `git_history_walker.py` so that the end-to-end
test test_branch_without_base_branch passes correctly.