added notes to repo. fixed major LuciList_append bug

LuciList_append had a one-off error in checking whether
to reallocate (expand) its internal array.
removed all traces of reference counting.

preparing for some real garbage collection, right after
I read a couple textbooks on the subject.
changed LuciObjects to use vtables as type identifiers.

The object type enumeration has been replaced by a
struct containing various pointers to functions and
c-strings. Object types are now identified by the address
of their respective type struct, which is very similiar
to a virtual method table.

Since objects now implement an 'add' method, I removed
addition from the BINOP instruction and created an ADD instruction,
with the intention of removing the BINOP instruction in the near
future, replacing all operations with their own instructions.
added static singleton LuciNilObj.

Changed many functions to return LuciNilObj rather than NULL.
This allows NULL to be reserved for errors, and 'nil' to be
used as an actual NULL type.

I'm not sure whether methods that a type doesn't implement should
return NULL and die, or return nil (e.g. list - list or map * map)...
changed instructions from 16 to 32-bit unsigned ints
changed all JUMPS to use relative addresses.

also cleaned up the interpreter macros and replaced
all integer program counters with instruction pointers.
added the rest of the binary operation opcodes

began implementing the rest of the operation methods
for each type. Potentially finished with ints.