Move schroot creation from bin/debci-setup to backends/schroot/create-testbed

This is schroot backend specific and other backends will need different setup.
process-package: Call backend test-package adt-run output dir argument

Implement that in schroot backend with adt-run --output-dir. This will be used
to collect and present log files, artifacts, package/version lists, etc.

Implement that in the fake backend by just echoing the dependencies (if
present).
Eliminate list-base-system and use autopkgtest's testbed-packages output file instead

This will also work with remote workers and other virt servers.
Eliminate check_version() and take this information from autopkgtest's output
Move report_status() into lib/functions.sh

We'll need it in more places than just process-package.
Move "run needed" policy from process-package to bin/debci

With this, debci-test can be called manually at any time to retry tests or get
called by e. g. britney which already evaluates when to run tests.

Remove the "run test at most once a day" check completely as package updates
can happen several times a day.

As a by-product this also fixes debci's -f option to force a test run.

This introduces a second recorded package version lists "test-packages.txt",
the list of packages that got installed as test dependencies. These can differ
from "list-dependencies" both in version numbers (when available versions on
controller and remote worker are out of sync) as well as in packages (when
tests install additional test-only dependencies or not all binaries from the
source). As the latter is more suitable for regression analysis and the only
thing that's available in process-package, we now use this for blaming.
Merge remote-tracking branch 'mpitt/master'

Conflicts:
	debian/changelog
Revert change in expected dependencies diff format

If we suddenly start using TAB-separated lines we will break the
existing data in ci.debian.net