Basic reduction support

Works for several reduction methods: `sum`, `mean`, `min`, `max`, `var`, `std`.  Two reductions have partial support: `argmin` and `argmax`.  Except for `argmin` and `argmax`, the `axis` argument can be anything -- `None`, a sequence of integers, or a single integer.  Negative integers supported as well.