Change the monomial classes so that they always return a compatible key under differentiation.

Previously, a partial() wrt to a variable not present in the monomial or whose exponent/multiplier
is zero would return an empty key. Now the returned key is always compatible with the input arguments.