BUG: consistency between logical ops & type casts
Closes [#6528](https://github.com/pydata/pandas/issues/6528).
Currently series logical operations are bound to return a series with `dtype='bool'`. That being a good decision or not, it is good to have some internal consistency:

```
>>> a = pd.Series([nan, nan, nan])
>>> b = pd.Series([False, True, nan])
>>> a | b == b | a  # not symmetric
0     True
1    False
2     True
dtype: bool
>>> a & b == a.astype(bool) & b.astype(bool)  # not consistent w/ type casts
0     True
1    False
2    False
dtype: bool
```

With this patch, [all these tests pass.](https://github.com/pydata/pandas/pull/8151/files#diff-933180870dd152b775952fc54a99dba7R2371)

need a release note
 @behzadnouri can you rebase this. I believe there was another pr with modified this code.
 this pr is based on the assumption that the element-wise logical operations are bound to return a series with `dtype=bool`. https://github.com/pydata/pandas/pull/9338 has changed this; so this way may not be the best way to go forward.

i feel like following python's mechanism of [boolean operations](https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not) is a better path. 
 can u provide an example of what you think is wrong / what needs changing?
 I mean element-wise and/or etc should actually do element-wise logical operations, so then `a & b` and `a | b` should be equivalent of 

```
>>> Series(map(lambda x, y: x and y, a, b))  # element-wise and
>>> Series(map(lambda x, y: x or y, a, b))  # element-wise or
```

for example:

```
>>> a = pd.Series(['a', '', np.nan])
>>> b = pd.Series([0, 1, 2])
>>> pd.Series(map(lambda x, y: x and y, a, b))
0    0
1
2    2
dtype: object
>>> pd.Series(map(lambda x, y: x or y, a, b))
0      a
1      1
2    NaN
dtype: object
```

https://github.com/pydata/pandas/pull/9338 is _sort of_ doing this for integers, but same can be done for all types as in python `"abc" and 3.14` is a valid expression.
 @behzadnouri we ought to reexamine this for 0.17.0. pls rebase when you have a chance.
 @jreback I close this one per my comment earlier that i no longer feel this is a good approach. I will do a new pr when i get a chance and if i could make it work.
 great thanks!
