Add is_reduction argument to DataFrame.apply

Use 'reduce' argument instead of adding 'is_reduction' argument

Fix apply on empty DataFrame returns DataFrame

Add changelog notes and examples