pandas.applymap converts None to NaN even though I didn't ask it to? 
I have a dataframe with some empty strings and some NaNs. I want to convert both of those to None. 
I'm calling applymap to convert the empty strings into None, which works; but it has the side-effect of converting all the existing Nones into NaN!
  Using pandas version 0.16:

```
import pandas
import numpy

p = pandas.DataFrame({ 'x' : [ numpy.NaN, 1, 2 ], 'y' : [ '', 'hello', '' ] })
#This line fixes the NaN in the first column but doesn't do anything 
#about the empty strings in the second column. 
p = p.where(pandas.notnull(p), None)
#This line fixes the empty strings in the second column, but it messed up the first column!
#It turns my None back into a Nan again! But why? Looks like the column was dtype 'object'
#before and this is converting it to dtype=float, but why? I never asked it to do that. 
p = p.applymap(lambda x: None if isinstance(x, str) and x is not None and len(x) <= 0 else x)
```

Is there any way to convert both the NaNs and the empty strings into None?
