BUG: values array for non-unique, interleaved cols incorrect
I came across this problem when I was doing some work for #4362. When a frame with mixed dtypes including Timestamps has dupe column labels the values array returned is different, as illustrated below (master branch):

``` python
In [3]: df = pd.DataFrame([[pd.Timestamp('20130101'),3.5],[pd.Timestamp('20130102'),4.5]], columns=['x', 'x'], index=[1,2])

In [4]: df
Out[4]: 
                    x    x
1 2013-01-01 00:00:00  3.5
2 2013-01-02 00:00:00  4.5

In [5]: df.values
Out[5]: 
array([[1356998400000000000L, 3.5],
       [1357084800000000000L, 4.5]], dtype=object)

In [6]: df = pd.DataFrame([[pd.Timestamp('20130101'),3.5],[pd.Timestamp('20130102'),4.5]], columns=['x', 'y'], index=[1,2])

In [7]: df
Out[7]: 
                    x    y
1 2013-01-01 00:00:00  3.5
2 2013-01-02 00:00:00  4.5

In [8]: df.values
Out[8]: 
array([[datetime.datetime(2013, 1, 1, 0, 0), 3.5],
       [datetime.datetime(2013, 1, 2, 0, 0), 4.5]], dtype=object)
```

The included changes should fix the problem. This is my first time messing about in pandas internals so any feedback is appreciated!

Possibly related to #4377

This looks good, interestingly in 0.12 this was an assertion error (so it's good it's tested!):

```
AssertionError: All items must be in block items
```
 I think @jreback fixed the assertion error in #4388. 
 let me look at this a sec
 @Komnomnomnom this looks good....nice catch
 Awesome, thanks :-)
