Make an exception class for reserved attributes
Throw ReservedAttributeException

In add_node() and add_edge(), throw an exception if the user tries
to add a node or edge with a reserved attribute.

Consequently, this required changes to add_nodes() and add_edges()
to make deep copies of the attribute dicts passed in so that the
original objects were not modified.
Merge branch 'v0.2.0'

Throw exception if user tries to add a node/edge with reserved
attributes.