Tidying up - add cached builder.db.get_checkout_vcs

This should make it quicker to retrieve the VCS for a checkout
when we do it many times, plus it handles checking it is a checkout
label, etc.

Conflicts:
	muddled/commands.py
	muddled/depend.py
	muddled/version_control.py
	tests/test_lifecycle_git.py

resolved by hand.
Fix missing import
Start trying to simplify a little bit

'vcs_handler' should really just be vcs, for a start...
Remember the checkout VCS independently

Add db.set_checkout_vcs and use it in version_control.py

This is duplication of information for the moment, but won't be later.

Also, at the same time, move to using depend.normalise_checkout_label
everywhere, instead of the two other versions of (more or less) the
same code
Make VersionControlHandler much smaller/simpler

and consequently change all uses of it, including the Checkout action.o

Much more stuff is now stored in builder.db, and there is now also
a "muddle query checkout-vcs".

Oh, and "muddle help vcs" is a little bit more helpful, too.o

Also, finally removed conventional_repo_url from version_repository.py,
since it was too difficult to make it carry on working.
Use builder.db.get_checkout_path() directly

(but keep builder.checkout_path() for use by users, consistent
with other path-getting methods of builder)
Tidy use of builder.db.get_checkout_location
Partway through changing to a single checkout_data

That is, a conglomerate object inside db.py, with a single
dictionary instead of many, which seems/feels more sensible

Checked in at end of day, currently not working.
Tests now pass.
Minor tweaks
parasitic.py is not, I believe, needed

(and, moreove, is not finished)
After application of pylint -E

basically to everything in sight.

Tests now all pass again.
Merge branch 'master' into checkout-object
Merge branch 'checkout-object' into lifecycle-branching

Conflicts:
	muddled/commands.py
	muddled/db.py
	muddled/mechanics.py
	muddled/version_control.py
	tests/test_licenses.py

Fixed, but version_control.py needs proper fixing to go with the merge
- but then it was waiting for it anyway
Attempts at more fixes post-merge

Still not complete: test_upstream is clearly broken.
Improoove upstream testing

It's not clear to me why the previous version ever worked.

I think this creates alternate repositories properly, so that they
have common history.