BUG: fix unsafe dtype conversion in Series
fixes assignment to smaller itemsizes on dtype upcasting

@wesm this should fix it. FYI once series inherits from NDFrame this magic is completely gone (as its a simple block change, which is easy to do even inplace)
 @wesm this new version is cleaner
 Shoehorning `Series.where` into working for the `__setitem__` case isn't totally satisfactory but this will work. At some point this all will need to get cleaned up
 @wesm already set to clean up in 0.12. where is moved to core/generic.py and a dtype change is simple because just make a new block...coming soon
 @y-p sorry....:)
