PERF: Improved performance for StringMethods.encode/decode
Reusing encoding/decoding function for a specified encoding doubles speed.

```
import pandas as pd
s1 = pd.Series(["Dzień добрый"]*100000)
s2 = s1.str.encode('cp1251', 'ignore')
%timeit s1.str.encode('cp1251', 'ignore')
%timeit s2.str.decode('cp1251')

```

10 loops, best of 3: 157 ms per loop --> 80.9 ms per loop
10 loops, best of 3: 179 ms per loop --> 84.1 ms per loop
