BUG: Make sure series-series boolean comparions are label based (GH4947)

closes #4947

```
In [1]: a = Series([True, False, True], list('bca'))

In [2]: b = Series([False, True, False], list('abc'))

In [3]: a & b
Out[3]: 
b     True
c    False
a    False
dtype: bool

In [4]: a | b
Out[4]: 
b     True
c    False
a     True
dtype: bool
```

non-matches 

```
In [5]: a | Series([])
Out[5]: 
b    NaN
c    NaN
a    NaN
dtype: object

In [6]: a & Series([])
Out[6]: 
b    NaN
c    NaN
a    NaN
dtype: object

In [7]: a | Series([1],['z'])
Out[7]: 
b    NaN
c    NaN
a    NaN
dtype: object

In [8]: Series([1],['z']) | a
Out[8]: 
z    NaN
dtype: object
```