Issue 3587: Modified Rational.__mod__ by adding a extra test to
            determine whether self.evalf() is a Float.
Issue 3587 : evalf() called once only. Removed extra elif cluase.
             Added test case.
Fixed the wrong return value in Rational.__rmod__
Merge pull request #1709 from prasoon2211/issue-3587

Issue 3587: Modified Rational.__mod__ by adding a extra test to determine whether self.evalf() is a Float.