PERF: vbench for time-series index assignment in frame (GH5320)
PERF: direct index assignment in a frame was doing lots of work

closes #5320

```
-------------------------------------------------------------------------------
Test name                                    | head[ms] | base[ms] |  ratio   |
-------------------------------------------------------------------------------
frame_assign_timeseries_index                |   0.7157 | 398.8634 |   0.0018 |
```

This introduced a bug because it didn't broadcast the value on a matching index - I'm working on a fix right now.

``` python
import pandas as pd
df = pd.DataFrame(zip(range(5), range(5), range(5), range(5)),
                  columns=['C1', 'C2', 'C1', 'C3'],
                  index=['a', 'b', 'c', 'd', 'e'])
df['C1'] = df.index # fails because doesn't broadcast the value
```
 dups ok let me take a look (prob was not tested before)
 @jreback no, the issue is that you have to apply the broadcasting logic at the end of the if clause you took it out of. I already have a fix. no big deal.
 When adding cases to already hairy conditional logic It's useful to add a
comment referencing the orig issue (GH1234) to help locate the orig. discussion. 
pep8 storms sometimes make using `git blame` inconvenient for this.

I picked this up originally from wes's code and I think it's a useful convention to adopt.

my 2c
 That makes sense. Btw - I recently noticed that fugitive for vim lets you
traverse back through the history of a particular line - incredibly useful
feature.  If we try to keep line widths to 79 characters, that would also
help the problem :P
