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 how do you think is better to export `type` in serialization, do you think this is okay:

	reference:
	  id: "Resource 1"
	  type: SymbolReference
	  
	
	"reference": {
      "id": "Resource 1",
      "type": SymbolReference
    }