Updated `__str__` and `from_mpq` to use canonicalized property

Since in canonicalized form, the denominator is stored as positive
this led to simplification in the function logic.