Auto complete and other fixes

Along with syntax highlighting and other cleanup. Fixes #244 and #211
This will pollute the namespace of every header that include this file... right @lowjoel ?