closure support, ugly implementation :(
some fixes of closure bugs (continue patching)

  o new built-in `set!' function
  o Context#lookup_context now return nil instead of raising exception
    when a symbol is not found
  o Context#clear to clear symbol table of a context
  o bug found and marked for built-in `fluid-let'
  o closure rspec testcases
    * regular adder generator
    * y combinator!
string functions
New refactored revo is there

Changes:
    * clarify the inheritance graph and class name
    * arity check for callable values(code)
    * parameter automatically assigning for primitive{procedure,macro}
    * helpers provided for the primitive proc/macro
    * mv SExpr#cons{,\!}
    * rewritten tail/head recursions in ruby code into iterative for
      efficiency's sake
    * name support for callable-object, for easy debugging
    * more adaptable NULL type support
    * new Context#store_mass
    * removed a lot of unnecessary things
    * new value#type_strig

New inheritance graph:

    - Value*
        - Data*
	    - SExpr(list)
	    - String
	    - Symbol
	    - Number
	    - Bool
 	- Code*
	    - Procedure*
	        - UserLambda
	        - PrimitiveProcedure
	    - Macro*
	        - UserMacro
		- PrimitiveMacro
	- Null

note: those affixed by asterisk are virtual classes
Merge branch 'dev'