squeeze works on 0 length arrays
fixes: https://github.com/pydata/pandas/issues/11229.
fixes: https://github.com/pydata/pandas/issues/8999.

Also a better implementation that avoids `ix`

Should I add to What's new for 0.17? Or is that closed now?

@jreback tests added
 What should the behavior be here:

``` python
empty_series=pd.Series([], name='five').squeeze()
```

numpy returns itself:

``` python
In [18]: pd.np.empty(0)
Out[18]: array([], dtype=float64)

In [19]: pd.np.empty(0).squeeze()
Out[19]: array([], dtype=float64)
```

...which is the current pandas implementation too.
But I could see `None` being acceptable here
 no squeeze does not return a scalar always a Series (or high dim)
 OK @jreback, test added for that too
 Also closes https://github.com/pydata/pandas/issues/8999
 their is a whatsnew for 0.17.1 pls add a release note.
 @jreback what's new added, commits squashed, ready to go from this end
 @jreback done!
 merged via https://github.com/pydata/pandas/commit/aa94ae4d93f564a5dbba03255a0dfa5c73efb0e9

thanks!
