BUG: GH9428 promote string dtype to object dtype for empty DataFrame
Addresses [GH9428](https://github.com/pydata/pandas/issues/9428).

When constructing an empty DataFrame with a string dtype (e.g. `str`, `np.unicode_`, `U5`), the dtype is now promoted to the `object` dtype. This is now consistent with Series and avoids the confusing behaviour described in the original issue.

can u add some tests 
 pls add a test for this.
 No problem - I can add the test to `test_frame.py` as soon as I get off work later today.
 I've added the test, but please do let me know if anything about the PR looks like it should be improved or re-done.
 ok, looks good. pls rebase on master and squash

ping when green.
 @jreback: it's green, but I now realise I may not have squashed the commits properly.

Would it be best to rebase/squash again locally and then push again? (Also do I need to squash _all_ commits together or just my own commits?)
 need small change

then squash locally and make sure to push with -f
 @jreback: green again... hopefully things are in order this time (I can push again if not!)
 thanks @ajcr !

keep em coming!
 Thank you! I'll see what else I can do...
