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.
More than sufficient to get some warning, but it can cause a bunch of delays and confusion in getting the message to us. (E.g. the first failing CI build might be some time after the patch that actually introduced the bug, and git bisect wouldn't work.) So thanks :-)