Finish up max pooling with a mask from @sguada

This PR should complete the remaining work from PR #322 from @sguada to do maxpooling with indices saved to a mask.

I rebased to the latest dev, linted, fixed a bug (was causing tests to fail), stored the mask in new `Blob<int>`, and added an option to output the mask to a top blob, which happens if two top blobs are specified.  Also added a test for the forward pass for both cases (internal mask, output mask).