ENH: GH9746 DataFrame.unstack and Series.unstack now take fill_value …
…kw for filling NaN when unstack results in a sparse DataFrame

closes #9746 

This may interact with #9023
 I can resolve conflicts where necessary, let me know when and how to proceed.
 Reworked and simplified, and now just pass fill_value to _maybe_promote, which I believe is more correct.  As an effect of this I had to handle a None fill_value passed to _maybe_promote as this is the default of unstack().  As an alternative the default of unstack() could be fill_value=np.nan.
 can you rebase/update according to comments.
 @amcpherson only a couple of doc changes. pls ping when ready & green.

thanks for the patience.....i periodically cycle thru PR's and sometimes don't make it all the way thru....(before I start again) :)
 can you run: `git diff master | flake8 --diff` and fix anything. going to shortly be enforcing PEP8.
 can you rebase / update according to comments
 Apologies for the delay, let me know how it looks now.
 lmk when you have a chance to update
 Some tests failing, checking now.
 Nevermind, tests were failing due to out of date .so, all looks good.
 @amcpherson thanks!
