Add fastcache as an optional depency.  Use fastcache for travis tests

Add fastcache as an optional depency to address the slow down introduced by the pure python based LRU caching of #7464.  Also, use fastcache for travis tests to speed things up although I'm not certain which tests to use it for.

benchmark run on my machine:

On master:
```bash
bin/test sympy/series/tests
============================= test process starts ==============================
executable:         /home/ptb/miniconda3/bin/python  (3.4.1-final-0) [CPython]
architecture:       64-bit
cache:              yes
ground types:       python 
random seed:        49892325
hash randomization: on (PYTHONHASHSEED=1744707961)

sympy/series/tests/test_demidovich.py[17] .................                 [OK]
sympy/series/tests/test_gruntz.py[41] .s.ffffs................................. 
                                                                            [OK]
sympy/series/tests/test_kauers.py[2] ..                                     [OK]
sympy/series/tests/test_limits.py[46] .......fff................................
....                                                                        [OK]
sympy/series/tests/test_lseries.py[7] .......                               [OK]
sympy/series/tests/test_nseries.py[67] .................f.......................
..........................                                                  [OK]
sympy/series/tests/test_order.py[46] ...........................................
...                                                                         [OK]
sympy/series/tests/test_residues.py[9] ........f                            [OK]
sympy/series/tests/test_series.py[14] ..............                        [OK]

= tests finished: 238 passed, 2 skipped, 9 expected to fail, in 347.03 seconds =
```

This PR:
```bash
bin/test sympy/series/tests
============================= test process starts ==============================
executable:         /home/ptb/miniconda3/bin/python  (3.4.1-final-0) [CPython]
architecture:       64-bit
cache:              yes
ground types:       python 
random seed:        46560502
hash randomization: on (PYTHONHASHSEED=3339036091)

sympy/series/tests/test_demidovich.py[17] .................                 [OK]
sympy/series/tests/test_gruntz.py[41] .s.ffffs................................. 
                                                                            [OK]
sympy/series/tests/test_kauers.py[2] ..                                     [OK]
sympy/series/tests/test_limits.py[46] .......fff................................
....                                                                        [OK]
sympy/series/tests/test_lseries.py[7] .......                               [OK]
sympy/series/tests/test_nseries.py[67] .................f.......................
..........................                                                  [OK]
sympy/series/tests/test_order.py[46] ...........................................
...                                                                         [OK]
sympy/series/tests/test_residues.py[9] ........f                            [OK]
sympy/series/tests/test_series.py[14] ..............                        [OK]

= tests finished: 238 passed, 2 skipped, 9 expected to fail, in 234.49 seconds =
```

A speed up of roughly 33%
move definition of `__cacheit` for pure python lru_cache here so both `__cacheit`s are defined in same control statement.