RGDA1 for RDFlib

RGDA1 (RDF Graph Digest Algorithm 1) combines the traces graph labeling algorithm with the Sayers and Karp RDF graph digest algorithm. This algorithm will produce canonical cryptographically unique identifiers for any RDF graph.
Alternatively, you could also create a copy of the dict:
```
def __init__(self, nodes, hashfunc, color=(), hash_cache={}):
    hash_cache = dict(hash_cache)
```
This would mean that the object given by parameter hash_cache is never changed. Instead, a copy is created and modified later on.

Which alternative to choose of course depends on the usecase.