Add is_reduction argument to DataFrame.apply

Add `is_reduction` argument to `DataFrame.apply` to avoid surprising behavior when the DataFrame is empty:

* http://stackoverflow.com/q/21225608/71522
* http://stackoverflow.com/q/21225552/71522