Set column slices using an ndarray view of the underlying data

As discussed in #2994, in Python 2 setting a table Column slice does not go via `__setitem__`, but instead via `__setslice__`.  Unless this method is overridden in the subclass then it ends up falling through to `__array_finalize__`, which is quite slow.  This PR improves the speed by an order of magnitude or more for:
```
In [1]: from astropy.table import Column
In [2]: c = Column([1,2], name='a')
In [3]: timeit c[:] = 2
100000 loops, best of 3: 2.39 µs per loop
```