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 .
Good point. I'll add a test.