Implement graph export method on Node

An export method is added on the Node class which returns a json object
that represents the graph of the node instance and its definitions,
recursively. The return value is as speficified in issue #38 with a
format version number, the `uri` of the resource node, and dicts of nodes
and relationships, each with its `path` as a consistent id, a type, a
label, and a dict of properties. To support this method, __eq__ and __ne__
methods are added to the Node and Rel classes and an id_func_factory
utility method is added (in utils) that created id_func methods based on
dictionary or callable id_maps passed to the export method. The
generated id_func returns default ids (`uri` for resource nodes, `path`
for other nodes, and `start path:type:end path` for rels) when the
id_map returns None.

Fixes #38
Fixes #54

Signed-off-by: Aaron Browne <aaron0browne@gmail.com>