fix non-conforming bug to compile with Clang. bug related to Two-Phase Name Lookup
when a method of a templated class must be looked up in the base class
 (which is also a templated class), should prepend "this->" before method call.
see also http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html
bugfix: declaring a var "i" shadowing the outside var "i".
bugfix: atomic builtin (swap4) must use int* instead of double*
fix typedef name conflict: rename CFGNode and CFGEdge to compile with Clang.
add explicit template params to compile with Clang.
Calls to extract/writeRegister etc. now use explicit Len template parameters.