Fix `mul` simplification

Fix for issue #212.
I think this part does not belong to `from_dict`. The idea behind `from_dict` is to **quickly** construct whatever instances represent the dict `d`. The dict already needs to be properly simplified. Essentially it's just a method that returns `Mul`, or the appropriate class like `Pow` if the size of the dict is 1. So any expensive thing, like a for loop must be called before `from_dict` is called and only in cases when it is needed.