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.
We should have an `enum ReferenceType` which will contain different kinds of references. For now, only `SymbolReference` is enough.