ENH: drop_duplicates(consecutive=True) to drop only consecutive duplicates
DataFrame.drop_duplicates can be useful to 'sparsify' a frame, requiring less 
memory/storage. However, it doesn't handle the case where a value later reverts
to an earlier value. For example:

```
In [2]: df = pd.DataFrame(index=pd.date_range('20020101', periods=5, freq='D'),
                          data={'poll_support': [0.3, 0.4, 0.4, 0.4, 0.3]})

In [3]: df
Out[3]:
            poll_support
2002-01-01           0.3
2002-01-02           0.4
2002-01-03           0.4
2002-01-04           0.4
2002-01-05           0.3

In [4]: df.drop_duplicates()
Out[4]:
            poll_support
2002-01-01           0.3
2002-01-02           0.4
```

Would be ideal to be able to do something like:

```
In [4]: df.drop_duplicates(consecutive=True)
Out[4]:
            poll_support
2002-01-01           0.3
2002-01-02           0.4
2002-01-05           0.3
```

This should also be a much faster operation, since you only have to compare each
row with its successor, rather with all other rows.

You can achieve something like this with some shift trickery:

```
In [5]: s1 = df.shift(1)

In [6]: different = (s1 != df) & (s1.notnull() | df.notnull())

In [7]: df.drop(df.index[~different.any(axis=1)], axis=0)
Out[7]:
            poll_support
2002-01-01           0.3
2002-01-02           0.4
2002-01-05           0.3
```

But this is somewhat cumbersome, and allocating the intermediate shifted
frame can be slow (particularly if done via a groupby with a lot of groups).
