Make fix_range work for both range() and xrange()

Previously the fixer was never used due to lib2to3.fixes.fix_xrange running first. This rewrite of `fix_range` should supplant that usage plus make sure `six.moves.range` is used for `xrange`.

Closes #23 .
For completeness, should there be a test with both range and xrange in a single sample? The changes interact, because we redefine range(), though I'm satisfied that the result is correct.