expr: add Union operation
pandas: union
python: union
spark: union
sql: union
Add links to pandas and sqlalchemy
Add cytoolz as a hard dep
compute: projection of data descriptor uses `.py`

Previously we used to iterate over the descriptor

    @dispatch(Expr, DataDescriptor)
    def compute_one(t, ddesc, **kwargs):
        return compute_one(t, iter(ddesc))  # use Python streaming by default

Now if the top node is a projection we can select out the right columns

    @dispatch(Projection, DataDescriptor)
    def compute_one(t, ddesc, **kwargs):
        return ddesc.py[:, t.columns]

Because most `.py` systems can remove a few columns more efficiently than many
columns this has great performance improvements.  E.g. column stores are now
active and CSV files don't need to deserialize everything.
Add pandas as a hard dep
skip spark tests when pyspark is not available
Rename test files for py.test usage
Update travis for py.test usage
Update requirements.txt to require pytest
Use pytest decorators for skipping and failing
Skip on spark unavailable
Use pytest xfail
Remove unused imports
Clean up after ourselves when testing sqlite locally
Should not require pytest for use
Skip spark and remove nose