BUG: Boolean indexing on an empty series loses index names
#4235

can u put tests in to check the resulting dtype
this actually may be an API change
 Added a check on dtype.
 @jreback this looks reasonable to me. Think it's a bug fix rather than API change.

@mtkni Do you mind adding a Note in the release notes (`docs/source/release.rst`) mentioning 4235 (you'll probably have to rebase off current master first) ?
 I think this might be fixed 
as am pretty sure that in propogate names (but maybe not on empty)
 The first test is already working in master, names propagate (however can't hurt to add test?).

This one isn't though:

```
        result = lib.infer_dtype(np.array([], dtype='i4'))
-        self.assertEqual(result, 'empty')
+        self.assertEqual(result, 'integer')
```

I get (in master):

```
In [10]: pd.lib.infer_dtype(np.array([], dtype='i4'))
Out[10]: 'empty'
```

maybe @mtkni has some thoughts.
 actually the inference of 'empty' I don't think is actually used anywhere. I would ALWAYS return the type (and mixed) if you fall thru the loop, empty is definitly weird
 if n == 0, then just return an inferred dtype (you have to map them, prob via the kind)

e.g.

```
if dtype.kind == 'i':
   return 'integer'
elif dtype.kind == 'f':
   return 'floating'
......
```
 @jreback well apparently not, since moving just those 3 lines seems to do the trick. merge then?
 @hayd ok then!
 This passes on a rebase https://travis-ci.org/hayd/pandas/builds/10534501

@jreback  Will wait on release note? Or I could pop it in to my branch.
 @hayd whatever works for you!
 ok, adding commit to my rebased branch and will close these.
