Enhanced protocols in preparation for multigraphs.

I have attached a pull request for all the changes that I think need to happen in the existing protocols to support multigraphs.  The rest can be done in separate protocols / separate namespace.

All of loom's graph types have been extended with default implementations for the protocol extensions, and all tests pass.