ENH: Add deep=True kwarg to copy and fix copying.

Also, `__deepcopy__` just calls `copy()`