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.
I wanted both `SerializeJSON` and `SerializeYAML` to be consistent. So, please change this to

```
    if (reference.id.empty()) {
        return;
    }
```