Illustrative attempt at wraparound catalog properties.

Here's a first crack at addressing #120, which noted that when a structure "wraps" around in coordinate space, its computed properties are broken.

This implementation (which is currently overly simple) checks to see if `dendrogram.neighbours` is anything other than the vanilla `Dendrogram.neighbours`. If it is, it assumes that you want to wrap in longitude space. Whenever it finds that you're computing stats on a structure that touches the "minimum" and "maximum" extents of the data, it assumes that it's a wraparound structure and shifts the bottom indices up by the length of the data. Later I'll want to make sure that the resultant computed properties (such as the x_cen, whatever) are within the bounds of the data (so e.g. I'd mod them by `wrap_longitude`)

For control, I've introduced an extra keyword "wrap_longitude" which percolates from `ppv_catalog` down to `ScalarStatistic`, but this wouldn't be the permanent name or form of such a variable.

Any thoughts on whether this implementation is heading in the right direction are welcome.
As a first pass to get this working for simple cases, I think it would be better to always detect+wrap periodic values, with a snippet like this:

```
for i in self.indices:
    # catch simple cases where a structure straddles a 0/360 boundary
    i2 = np.where(i > 180, -i, i)
    if i2.ptp() < i.ptp():  # more compact with wrapping. Use this
        i[*] = i2
```

This isn't the generally correct solution, but it works for the common + easy case (small structures straddling the boundary), and should rarely do the *wrong* thing