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.
@zdne Do we really need a sub-struct `Identifier`? Can't we simply have 2 members in `Reference` structure as `Identifier identifier` and `ReferenceType type`?