Implicitly include (scheme core) in tests

In addition to (llambda nfi) also incldue (scheme core) in the
functional tests. There's not much advantage to requiring it to be
explicitly included and having it implicit saves a lot of verbosity and
vertical spaces in the tests themeselves.
Rename (scheme core) -> (scheme base)

(scheme base) is the name used in the final R7RS report. I'm unsure
where (scheme core) came from but it's not referenced anywhere in that
document
Rename test/scala/{util => testutil}

This is less ambiguous and matches the package name
Implement (vector), (list->vector)

This is required for vector quasiquotation support. Use the same trick
as (list->string) to reuse the same runtime function for both procedures
but with a different calling convention.
Pass the LibraryLoader to ExtractModuleBody

Using quasiquotation will implicitly load (scheme base) for (list) and
(Vector). We need to be able to do this from within ExtractModuleBody
when quasiquotation is encountered. The other option is to
unconditionally load (scheme base) and pass its bindings in but that
seems less desirable.
Implement non-splicing quasiquotation

Splicing would require an implementation of (append) which doesn't exist
yet. Commit non-splicing support by itself as it works fine standalone.
Implement (append)

This reworks BoxedListElement.cpp quite a bit to have a cleaner
implementation at the same time. createImproperList has been renamed
createList and now requires the tail to be explicitly passed in as the
last argument. createProperList is defined in terms of createList with
an empty list as its tail.