test-coverage-recursively: remove private and tests vocabs

private vocabs are already covered when testing the main vocab.
test vocabs don't need coverage.
tools.coverage: add tests, fixes #433
http.client: adding version of download-to that checks file exists.
spelling: use ?download-to.
extra: use ?download-to in a few more places.
sorting.quick: adding a Quicksort implementation.
sorting.quick: adding tags.txt.
stack-checker.alien: fix help-lint.
sorting.quick: faster by using stack variables not mutable locals.
VM: refactoring that removes data_root_ranges

instead of storing data_root_ranges in data_roots, you can just store
cell pointers directly. the advantage with doing it that way is that
registration and traversal code becomes simpler (and slightly faster).
VM: refactor bignum.cpp so that GC_BIGNUM is never called on a NULL
pointer

The purpose of this fix is to ensure that no NULL checks are needed when
traversing the bignum_roots vector.
VM: rename all variables named "bignum" in bignum.cpp to "bn"

The name can cause compiler errors because it's the same as the type
name. It only matters in some functions, but I like consistency so I
renamed it everywhere.
VM: change type of bignum_roots and remove unnecessary not-null checks

Declaring bignum_roots to contain bignum** instead of cell avoids some
superfluous casts. Casting it to cell is wrong because the items in it
are never tagged. And due to a earlier commit, bignum_roots will never
contain NULL:s so checking for them is not needed.