#409 Pass Value objects as shared_ptr instances instead of by Value to battle excess stack usage
Hack to track stack size in function evaluation.
Extract PRINTB() from recursion stack.
Use heap for Context object.
Remove big switch statement from expression evaluation.

The switch statement causes a huge stack overhead that is very bad for
evaluating recursive functions.
Initial experiment with using exceptions to handle stack overflows
Minor cleanup of recursion exception handling
Add function to retrieve the maximum stack size.
Add class to determine the current stack size.
Use class hierarchy for the different types of expressions.
forgot exceptions.h
Throw and catch RecursionException on module recursion
Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack

Conflicts:
	src/expr.cc
Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack
Remove duplicate warning message.
Use StackCheck to detect module recursion
Take a copy of the name of the recursive component, don't use a pointer to a temporary string
Implemented stackLimit() for Mac OS X
Removed old stack measurement code
Fixes crash during the second run of a failing recursive module