Add simple scopes and some cleanup

- Add a fairly basic scope assembly method
- Add a simple scope
- Make the gcc_context load lazily
- Add comments to all functions, and decls
-