Move mm padding to pattern matcher (#101913)
There are a few reasons for this:
1. When I tried to enable padding via decompositions, I ran into weird errors with a number of models. I believe because we were making the type of a regular tensor a fake tensor.
2. This gives us flexibility to go before or after other graph passes
3. We can now also reason about the cost of the padding, and whether or not it can be fused since we have access to the graph
Pull Request resolved: https://github.com/pytorch/pytorch/pull/101913
Approved by: https://github.com/ngimel