Mark new cells as GC allocated

This gets rid of the old white/black designation inherited from Llispy
and instead uses constant/allocated/forwarding. This is to support a
more simple semi-space GC as opposed to Llispy's intended mark-sweep GC.
Remove preallocCells

preallocCells() is a legacy for when only single cell allocations were
supported. The intent was to preallocate the number of required cells to
reduce GC overhead. Now that ranges can be directly allocated from the
GC it no longer has a usecase.
Switch create(Proper)?List use std::vector

Previously they were accepting std::list<> probably due to my Qt brain
damage. std::vector<> is more efficient here but more importantly the
vector can be easily GC rooted across the GC allocation for the list's
pairs.
Rename alloc::Cell to alloc::AllocCell

"Cell" is an ambiguous name and could imply a generalization of
DatumCell. Tename to AllocCell even though its in the alloc namespace to
clarify that is it allocator related