Sorry for the massive commit. I'll try not to do this.
Several new features:
* Proper conses and lists (probably slow, can optimize later)
* Parse negative numbers
* Regular expressions (piggyback off js regex, not emacs compatible)
* string-match and symbol-name primitives
* if special form
* car, cdr, cadr, caddr, cadddr, nth, nthcdr, map, length, null,
symbolp, listp, stringp, numberp, etc. only in JS now but I will
expose them in lisp as primitives soon.
Fixed:
* setq now silently defines undefined variables
some miscellaneous things:
* simple init system to specify init code that loads after all defs
have been read
* String.camelize function stolen from Prototype