Padding for Max Pooling

Max pooling pads by -inf if the padding parameter is set.

Padding for pooling, like padding for convolution, can preserve the
dimensions of the bottom at the top. By setting the padding to
floor(kernel_size / 2) the top output is the "same" instead of the
"valid" part of the bottom input.

~~Note: I should add a test for max pooling with padding.~~ Included Jeff's test and other polish in 2239188.