BUG: DataFrame.clip sets all values to the lower_bound
The following unit-test fails:

``` python
def test_dataframe_clip(lb=-1, ub=1):
    df = pd.DataFrame(np.random.randn(1000,2))
    lb_mask = df.values <= lb
    ub_mask = df.values >= ub
    mask = ~lb_mask & ~ub_mask
    clipped_df = df.clip(lb, ub)
    assert (clipped_df.values[lb_mask] == lb).all()
    assert (clipped_df.values[ub_mask] == ub).all()
    assert (clipped_df.valus[mask] == df.values[mask]).all()
#
```
