Fix for #224: Fractional radical simplification

Fix for issue #224.
You should add an if statement, if "b" is rational. The reason is that you can't assume that if it is a Number and not Integer, that it must be Rational. I guess I didn't notice this when reviewing the current code which also assumed it.
In particular, it could also be a complex number (soon). So you can't do `rcp_static_cast<const Rational>(b)` unless you are sure it is a `Rational`.

So I would add another if Rational statement there, and then in the final else clause I would raise not implemented exception for now, as that would never be executed, until we add complex numbers. then we need to handle it appropriately.