to_sparse and assign is giving the wrong results. 
Coming from [SO](https://stackoverflow.com/questions/48180206/assigning-a-column-to-a-sparsedataframe), when a boolean scalar is assigned to a new column using `assign`, it is leading to wrong results. Why is that so? 

`df = pd.DataFrame({"a":[1,2,3]}).to_sparse(fill_value=False)`
`df.assign(newcol=False)`

       a  newcol
    0  1     0.0
    1  2     0.0
    2  3     0.0

This works as expected if the dataframe is dense i.e 

   `df.to_dense().assign(newcol=False).to_sparse()`

       a  newcol
    0  1   False
    1  2   False
    2  3   False

Is this a bug or is this a genuine thing that's happening? 