refactor clang to use CompilerState

instead of passing data through returns.
Now consume returns code and produce returns None
CompileState for grappalang
Merge branch 'master' into bmyerz-compile-state

Conflicts:
	raco/clangcommon.py
Merge pull request #123 from uwescience/bmyerz-compile-state

refactor clang to use CompilerState