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.
Sourcemap AST will be empty if the `ExportSourcemapOption` is not present. So, you have to wrap all source map logic inside `if (pd.exportSourceMap()) {}`.