Allow Range to accept Infinites

`__len__` raises `OverflowError` while doing `assert Range(0, oo)`. The method cannot be modified to return `oo` as the output of `__len__` must be an Integer.

I have put a `deprecated` decorator on `__len__` but it is leading to a few different test failures. Have I deprecated the method in the right way?

```
============================================== test process starts ==============================================
executable:         /home/hargup/anaconda/envs/py3.4/bin/python  (3.4.1-final-0) [CPython]
architecture:       64-bit
cache:              yes
ground types:       python 
random seed:        46819311
hash randomization: on (PYTHONHASHSEED=3671506383)

sympy/sets/tests/test_fancysets.py[17] ......EfffE......                                                   [FAIL]

_________________________________________________________________________________________________________________
_________________________________ sympy/sets/tests/test_fancysets.py:test_Range _________________________________
  File "/home/hargup/210fs/sympy/sympy/sets/tests/test_fancysets.py", line 105, in test_Range
    assert list(Range(0, 5)) == list(range(5))
  File "/home/hargup/210fs/sympy/sympy/core/decorators.py", line 25, in new_func
    SymPyDeprecationWarning(**decorator_kwargs).warn(stacklevel=3)
  File "/home/hargup/210fs/sympy/sympy/utilities/exceptions.py", line 154, in warn
    warnings.warn(see_above, SymPyDeprecationWarning, stacklevel=stacklevel)
sympy.utilities.exceptions.SymPyDeprecationWarning: 

__len__ has been deprecated since SymPy 0.7.6. Use len instead. See
https://github.com/sympy/sympy/issues/7741 for more info.

_________________________________________________________________________________________________________________
______________________ sympy/sets/tests/test_fancysets.py:test_range_interval_intersection ______________________
  File "/home/hargup/210fs/sympy/sympy/sets/tests/test_fancysets.py", line 126, in test_range_interval_intersection
    assert FiniteSet(*Range(0, 10, 1).intersect(Interval(2, 6))) == \
  File "/home/hargup/210fs/sympy/sympy/core/decorators.py", line 25, in new_func
    SymPyDeprecationWarning(**decorator_kwargs).warn(stacklevel=3)
  File "/home/hargup/210fs/sympy/sympy/utilities/exceptions.py", line 154, in warn
    warnings.warn(see_above, SymPyDeprecationWarning, stacklevel=stacklevel)
sympy.utilities.exceptions.SymPyDeprecationWarning: 

__len__ has been deprecated since SymPy 0.7.6. Use len instead. See
https://github.com/sympy/sympy/issues/7741 for more info.


================= tests finished: 12 passed, 3 expected to fail, 2 exceptions, in 0.85 seconds ==================
DO *NOT* COMMIT!
```