Adding __deepcopy__ method to customize behavior of `deepcopy`.
Adding __deepcopy__ method to customize behavior of `deepcopy`.

The `copy.deepcopy` function failed to recursively copy the
`Point` class attributes, `p` and `p0` of the `Vector` class.

Thus, a deepcopy of a `Vector` instance created copy of the
`Vector` array, but maintained references to the original
instances `Point` attributes, leading to bugs that were
difficult to pinpoint.

androomerrill/scikit-nano,scikit-nano/scikit-nano,scikit-nano/scikit-nano,androomerrill/scikit-nano