sorting.quick: faster by using stack variables not mutable locals.
io.launcher.windows.tests: many of the tests can result in utf8-encoded strings
sequences.extras: adding count* which returns % of counted items.
math.statistics: use if-zero in mean-ddof.
help.tutorial: make it more clear how the tests work, thanks @ambimorph!
sudoku: some cleanup.
sorting.quick: better interface, allow comparison to be passed in.
heaps: fix stack effect for >max-heap.
sorting.heap: adding Heapsort implementation.
math.extras: adding dotted range syntax.
math.extras: adding sum-squares and sum-cubes.
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.