Splittable apply

The rarely used expression, `Apply` gains a new attribute, `_splittable`.  This signals that the applied function can be split, applied, and concatenated without loss.  This signals to partitioned/chunked backends like expression-chunking and spark that they may parallelize these functions safely.

```Python
In [1]: from blaze import *

In [2]: bank = symbol('bank', '10000 * {name: string, amount: int, id: int}')

In [3]: bank.apply(myfunc, mydshape, splittable=True)
```