BUG:  Formatting of an index that has nan was inconsistent or wrong
 Formatting of an index that has `nan` was inconsistent or wrong,
(would fill from last value), closes GH #2850

Also changed in test_format.py/test_index
1) printing of 'nan' rather than the na_rep (NaN) is inconcsistent
     with everywhere else
2) a 'None' in the index is defacto treated as NaN, is this wrong?

@y-p when you have a chance, can you give this a look-see
 updated
cleaner now
 :thumbsup: 
 Want to fix up pprint_thing or shall I? 
 well that's the thing, when is pprint_thing supposed to hit None?
 None? I don't follow.
 what I meant was

pprint_thing(x)
where x is None

is this ever called? (i know it was called
on an index that had a None in it) - are there any valid
cases where this SHOULD be called with None?

I don't see an issue with pprint_thing like it is
 I was thinking of

```
In [73]: pd.core.common.pprint_thing(pd.Series([1,2,nan]))
Out[73]: u'[1.0, 2.0, nan]'
```

But, apperantly the repr/to_string methods take care of that,
so no need.

pprint_thing is mutually recursive with pprint_seq, so pprint_thing(None)
is possible. I made sure None printed as '', so there must have been some case 
I can't for the life of me remember now.

```
In [77]: pd.core.common.pprint_thing([1,2,None])
Out[77]: u'[1, 2, ]'
```

I'm sure it justifies that. at least I hope it does.
 ahh yes
that makes sense

the case I found was printing of a None index as ''
which I think should be illegal; prints as NaN now (and does a regular nan in an index)

so are we printing NaN or nan ?
is index different that values?
 show me a test case., what is a "None index"?

``` python
In [80]: pd.core.common.pprint_thing(pd.Index([]))
Out[80]: u'[]'
```

I think in normal use where the question of how nans are printed arises,
pprint_thing is not used directly and upper layers ensure proper behaviour.

in general. an index is a sequence like any other as far as pprint is concerned.
 I marked the 2 tests I changed in test_index
 Should be fine to change pp to print 'None'  as 'None' in general. (at least
I can't remember a reason not to).

Whether None should be interpreted as None or NaN, would
mean adding a mode to pprint_seq and specializing it's invocation
from pprint_thing based on sequence type (ndarrays supporting nans).

Alternatively, since other objects print nans correcty the other stringify method
must be jumping through hoops that the Index class stringify does not.
so could just add that to Index repr()

**edit**: which is what you've done.
