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. this PR is not yet ready to merge.
@pksunkara sorry but it's not clear for me what you mean. do you mean I have to define a type as `ResourceIterator` like : `typedef Resources::iterator ResourceIterator` in blueprint.h?