Make Egyptian fractions a little more robust.

Add checking for negative arguments, and arguments > 1

Don't know if this is actually needed; it does help avoid endless loops if you give an improper fraction to some of the algorithms.  Feel free to reject.
From test_ntheory.py:

    raises(ValueError, lambda: egyptian_fraction(Rational(-4, 9)))
    raises(ValueError, lambda: egyptian_fraction(Rational(355, 113), "Takenouchi"))

is that not the way to test it?