astropy/astropy — pull request #1833 by taldcroft (2013-11-27 02:55:44+00:00)
Title: Proof of concept for Table mixins - Time and FunctionColumn

This is an initial demonstration of the idea of Table mixin columns. These are table columns that are not subclassed from `Column` or `ndarray` but which implement a protocol that allows them to be part of a Table. Essentially they have a sufficiently close API and can do the operations required by the Table API.

The implementation for Time is the primary demonstration.
```
>>> from astropy.table import Table, Column
>>> from astropy.time import Time
>>> a = Column([3, 4, 5], name='a')
>>> time_obj = Time([1, 2, 3], format='unix').replicate(format='iso')
>>> t1 = Table([a])
>>> t1['b'] = time_obj
>>> print t1
a b
--- -----------------------
3 1970-01-01 00:00:01.000
4 1970-01-01 00:00:02.000
5 1970-01-01 00:00:03.000

>>> t1['b'] # This is really a Time object

>>> t1._data # Internal JD1 and JD2 stored in the array but not visible in table
array([(3, 2440588.0, -0.4999884259259259),
(4, 2440588.0, -0.49997685185185187),
(5, 2440588.0, -0.4999652777777778)],
dtype=[('a', '