BUG: set needs-init flag for unicode dtype

Python >= 3.3 does not like printing garbage unicode so printing
np.empty(x, 'U') can throw UnicodeDecode errors.
It is probably easier to just require initializing the dtype as a whole
instead of trying to catching the decode error on all places where it
might occur. Hopefully 0 is a valid code in all codecs.
Closes gh-4994.
works well on my system and if it only triggers every 1th time is more than sufficient due to the large number of times our suite runs all over the place but I guess a little loop should make it more reliable