Rectangular pooling

Implemented rectangular pooling, allowing pooling with different kernel_size, stride and pad along each axis.

I will add tests soon and update.
It seems that when kernel_size is specified, the other two are ignored. So why not both?