Feature Request: Circular bins with pd.cut
pandas.cut and similar operate on the principle that bins start at one end of a line and finish at another. However, sometimes it is necessary to work with data that operates on a circular scale, for example compass directions.

It would be a great enhancement if pd.cut could deal with these cases. 
I do not know of anything in numpy or pandas that currently deals with this situation, but it would be very useful.

#### Current workaround
Currently this is accomplished by having a bin covering half of the real bin at each end of the scale, for example the bin 345° to15° would be covered by a bin of 0° to 15° and a bin of 345° to 360°. It is then necessary to assign the members of one category to the other, rename it, and then delete the unused category.

```python
data = pd.DataFrame(np.random.random(400) * 360, columns=["Direction"])
bins = np.array([-15,  15,  45,  75, 105, 135, 165, 195, 225, 255, 285, 315, 345, 375])
c = pd.cut(data.Direction, bins)
c[c=="(-15, 15]"] = "(345, 375]"
c = c.cat.remove_unused_categories()
cats = list(c.cat.categories)
cats[-1] = '(345, 15]'
c = c.cat.set_categories(cats)
```

#### Desired behaviour

Better would be accepting a parameter indicating at what point the scale loops, e.g. zeroat=360. Other solutions may be possible, such as taking the structure of the list of bins to indicate that the scale loops.

One issue is the order. How can the fact that 345 is both more than and less than 0 be dealt with, depending on what direction you are looking in? There is an order, but it isn't straight forward.