Binning prototype

This isn't robust but is a decent example of how to create a backend-agnostic function out of Blaze expressions.

```Python
bins, counts = bin1d([1, 2, 1, 4, 5, 6], 
                     binsize=2)
assert list(bins) == [0, 2, 4, 6]
assert list(counts) == [2, 1, 2, 1]

bins, counts = bin1d([date(2000, 1, 1), date(2001, 2, 2), date(2001, 1, 2)],
                     binsize=blaze.year)
assert list(bins) == [2000, 2001]
assert list(counts) == [1, 2]
```

cc @hhuuggoo @pzwang