added flags field to LuciObject header :(

also cleaning up garbage collection code.
large commit for garbage collection.

this commit is PROBABLY going to be a throwaway.
I did all that work on getting a SIMPLE stop-the-world
mark-and-sweep garbage collector working, only to realize
how many C-functions allocate containers and append objects
to them. This breaks if garbage collection runs while the
container's children are being allocated... ARGH.
many :/ changes to get GC working.

I think marking is working properly, however
the sweep phase is doing something weird with the interpreter
stack. In the naive recursive fibonacci example, at some point while
executing a RETURN instruction, the object on the stack that should
be a LuciFunctionObj is a LuciIntObj... obviously broken.
garbage collection working!!!

there are some things to clean up...
I hate storing a single bit in LuciObject headers, so
hopefully I can move those to the GC Pool implementation.

I broke interactive mode, but I'll add it to the list of other
things I want to clean up/improve.