PERF: refactor Series().str.get_dummies
- [x] tests passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

No issue to link. No new tests.

Since `str_get_dummies` always receives just `Series` of strings, it's safe to transform it to python-native data structures and cut back some performance overhead. Works up to 2x faster and does not require Cython magic.

Script I used to test performance:
```python
import pandas as pd
import string
from itertools import cycle, islice
from timeit import timeit

letters_cycle = cycle(string.ascii_lowercase)
def letters(n):
    return list(islice(letters_cycle, n))

s1 = pd.Series(letters(3))
def f1():
    return s1.str.get_dummies('|')

s2 = pd.Series(letters(100))
def f2():
    return s2.str.get_dummies('|')


s3 = pd.Series(['{}|{}'.format(a, b) for a, b in list(zip(letters(10), letters(10)))])
def f3():
    return s3.str.get_dummies('|')

print('3 items:         ', timeit(f1, number=1000))
print('100 items:       ', timeit(f2, number=1000))
print('10 complex items:', timeit(f3, number=1000))
```

Current master:
```
3 items:          1.226549802115187
100 items:        4.812093775952235
10 complex items: 2.868986740009859
```

This PR:
```
3 items:          0.5505142270121723
100 items:        3.0751350841019303
10 complex items: 1.5680736750364304
```