Added isNil to check if a variant_t contains NIL
Added bool_t as both a Scheme type and C type
Allocate temporary VM registers as conses

Instead of allocating the VM's registers for temporary data as variants,
they are now allocated as conses, so that opcodes that operate on these
registers can have a stronger resemblence to the core Lisp functions
that operate on these units of memory. The implementations of the
currently defined opcodes have been rewritten to take both the car and
cdr of a cell into consideration when manipulating the data contained in
them.