How can np.nan be the representation of None when np.nan evaluates to `True`
In reference to @jreback 's answer on [this related issue](https://github.com/pandas-dev/pandas/issues/10871), it seems a bit counter-intuitive for me that `np.nan` evaluates to `True` while `None` does not.

```python
In[1]: not np.nan
Out[1]: False
In[2]: not None
Out[2]: True
```
This proved to be a source of trouble in some of my code, as building a dataframe object using inputs containing `None` turns them into `np.nan` which means they go from evaluating to `False`, to evaluating to `True`. How does this not prevent `np.nan` from being the representation of `None`?