Stack tables horizontally (by columns) or vertically (by rows, i.e. append)

This PR provides two new methods `hstack` and `vstack` that allow stacking tables by rows or columns.

This also addressses two post-merge comments by @iguananaut in #903 (meta.py => metadata.py and use of deepcopy()).

Docs and testing are still to be done.