Implement copy_to in VMArray.
Remove dependencies on get_number VTABLE for nqp::list.

When nqp::list was an RPA, this was fine, but due to a mismatch between
sixmodel and how Parrot expects PMCs to behave, it's easier to use nqp::elems
explicitly instead.
Make sixmodelobject.pmc's VTABLE_does handle some Parrot types.

Specifically, objects with the VMArray REPR return true for "array", and those
with VMHash true for "hash". This way, an nqp::list (and nqp::hash when that's
actually implemented) can be flattened into a subroutine call using Parrot's
:flat syntax.
Use list_s instead of list for string lists in HLL/Compiler.pm.
When converting Regex nodes in as_post, get PMC from cursor_start_all.

This means we use a few more registers, but the new nqp::list only supports
fetching PMCs, so now it fetches PMCs from the list and then converts to int
or string by setting the appropriate kind of register.
Implement smart numification similar to how it works on JVM.
Implement some of the scaffolding needed for proper HLL config.

This also makes hlllist get the list type from the HLL config, rather than
being hardcoded to BOOTArray.
Implement sethllconfig.
Set NQPArray's boolspec and add it to the HLL config.
Tweak nfa_from_statelist to work with VMArray objects, rather than RPAs.