Refactor group and node manipulation from H5File down into H5Group

This PR allows H5Groups to create and remove subgroups directly without requiring the user to manually dig out `_h5_file`.

It also extends the behavior of most functions creating new groups and nodes to also return those nodes.
Actually, why not just replace all the parameters fields with something like:

```
Equivalent to `H5File.remove_node` except that the absolute path `node_path` is
replaced by `node_subpath`, which is relative to this group.
```

Where the method and path names would need to be tweaked for each docstring.