code cleanup commit:
 - removed asprintf and dependency on GNU_SOURCE
 - renamed LITERAL to STRING
 - replaced FIRST with LIST_FIRST and SECOND with LIST_SECOND
 - cleaned up various TODOs
generalized macro-marking as casting to reinterpret data
converted remaining static extensions to newer dynamic library loading system
consolidated uses of make_small_object into make_object
added fputs, and standard streams are now non-function objects
added protect and removed error as builtin functions
added escape sequences
implemented first-class environments and added frame parameter to eval