Conv gemm non-square kernel support

This add support to non-square and kernels and strides sizes. It passes all tests. 

Features:
- [x] A Filter sizes (including non-square) supported
- [x] All stride sizes supported.

This finishes some TODOs in gh-2015.
It's a personal pet peeve of mine that we don't need to keep around a bunch of commented code since we have the magic of revision control.  I might not be the majority opinion though.

Apart from that, I agree that these tests are a little crazy.  I can only tell you to try and not further the madness.