Exceptions thrown by DataFrame.apply() should return the index the function failed on
```
def get_desc(x):
    return "Intermission" if x["ID"] == "0*" else x.workTitle.string + " by " + x.composerName.string
works["nice"] = works[0].apply(get_desc)
```

on this https://github.com/nyphilarchive/PerformanceHistory dataset

I would like pandas to tell me which line the function fails on, rather than something annoying like

```
TypeErrorTraceback (most recent call last)
<ipython-input-139-e53aa56df99a> in <module>()
      1 def get_desc(x):
      2     return "Intermission" if x["ID"] == "0*" else x.workTitle.string + " by " + x.composerName.string
----> 3 works["nice"] = works[0].apply(get_desc)

/usr/local/lib/python3.4/dist-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)
   2235             values = lib.map_infer(values, boxer)
   2236 
-> 2237         mapped = lib.map_infer(values, f, convert=convert_dtype)
   2238         if len(mapped) and isinstance(mapped[0], Series):
   2239             from pandas.core.frame import DataFrame

pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:63043)()
<ipython-input-139-e53aa56df99a> in get_desc(x)
      1 def get_desc(x):
----> 2     return "Intermission" if x["ID"] == "0*" else x.workTitle.string + " by " + x.composerName.string
      3 works["nice"] = works[0].apply(get_desc)

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
```
