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.
Note the whole point of reference is to later on introduce additional qualifiers of the identifiers and as such unless the this should use reference instead of identifier. Same applies to the data structures bellow.