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
Remove array printing code
add column/projection to compute(Expr, SQL)

Avoids dispatch ambiguity
SQL databases match nullability to datashape.Option

We now inspect database columns for the `NOT NULL` attribute and use
that to determine if the analagous datashape should have Options or not

We hook this into the datashape-sqlalchemy converters and use
the database reflection built into SQLAlchemy
csv: add to CSV docstring
Proper args for running py.test