ENH: Add `pd.DataFrame.strformat` method for simplified string series construction
Proposing a method that mimics the python string formatter that allows for simplfied construction of string series, based on existing dataframe columns. Currently, this can be done in one of two ways (probably more).
```python
    >>> df = pd.DataFrame([[1991,'09','05'],[1992,'04','06'],[2018,'12','25']],
                           columns=['year','month','day']) 
```
1) Vectorized concatenations using `df.Col.str.cat` or `df.Col.__add__`. This method can be verbose and cumbersome to read/write:
```python
    >>> df.year.astype(str) + '-' + df.month + '-' + df.day
```
2) Use `df.apply` with string formatting. This method is slow and not easy to read or write either
```python
    >>> df.apply(lambda row: '{year}-{month}-{day}'.format(**row.to_dict()), axis=1).
```

Proposed solution:
```python
    >>> df.strformat('{year}-{month}-{day}')
```

Implementation:

The implementation could look something like this, with some modifications to allow for error handling, positional arguments and format_specs (e.g. `{:.0f}`).

```python
from string import Formatter

def strformat(self, formatter):
    final = pd.Series('', index=self.index)
    for text, col, spec, conv in Formatter().parse(formatter):
        if spec:
            raise ValueError('\'format_spec\' currently not supported')
        if conv:
            raise ValueError('\'conversion\' currently not supported')
        final = final + text + df[col].astype(str)
    return final

pd.DataFrame.strformat = strformat

df.strformat('{year}-{month}-{day}')
```

