BUG: define empty product on Series and DataFrame to be 1
closes #7889 

looks good. nice refactor on bottleneck decorator...simpler
 maybe just need a release note on API section
 sure thing
 IIRC this was a can of worms. pls reopen if you'd like to address.
 @jreback : I think re-incorporating it would be more complicated now because the `zero_value` attribute isn't even respected (or returned) with the `bottleneck_switch` decorator.  Not sure what happened there.
