Support lazy referencing

this PR would make the snowcrash able to recognize references which has been defined after the location of the usage. closes issue #84.
@pksunkara the way of recognition of the references has not been changed in this PR we just added one more step into it so I cant figure out why do we need to change all the usage of `SymbolName` in other files like `SymbolTable.h`