Added in_place option to merge_nodes

This is in relation to the discussion that happaned in #1100. After this is merged, I will make the appropriate changes in #1100 


Use `super` rather than hardcoding the class here... Same everywhere else, e.g. `__init__`. That way if we ever switch graph libraries, we won't have to change all of these!