- Removed uneeded "outer global scope"

Before this change the symbol resolver would create "two global scopes",
one for the built in types and functions defined in std.core and other
for the program. The first was explicitly instantiated and the later
created by the "program block".

This change improves the situation by using the "program block" escope
as global escope.
- Use -Qunused-args when compiling with clang
- Removed placebo/uneeded compiler flags
- Make every scope have it's own environment

This is the first change towards a RAII implementation and alleviation
of scope and environment related nuisances. Expect breakage.
- Change Scope::getOffset() to fit new scoping scheme.