killing the union types
Cleanups and fixes
Result of shift operation on signed integers is bad.
Prevent negitive numbers from being used as the left operand of shift operator.
Major export cleanup. Anything that was exported but wasn't used outside where it was implemented has been turned into static, and their exports have been removed. This actually makes the compiler compile slightly faster.
Fix that memory leak that I spent hours trying to find months ago and didn't succeed at.
Add back that splint flag
Merge branch 'union-replacement' into cooking

Conflicts:
	ast.c
Experimental support for implicit return assignments. This closes #107. To enable return assignment support use -freturn-assignments. This allows you to do the following in QC code. T name() { return = expr_eval_T; return; /* returns expr_eval_T */ }. It allows for concise code and to rid locals in functions. It also saves a tremendous amount of space since only types of certian globals need to be allocated for returns.
Update man page
Update test template.
Make static
assignable return value now lives in ast_function, as globals can get overwritten randomly; removed parser_find_retval; updated parse_return
fixing that comment...
return assignment factorial test
make sure missing return values still warn
now a bare 'return;' is not required anymore if return has been assigned anywhere