ENH: tz_localize(None) allows to reset tz
Closes #7812. Allow `tz_localize(None)` for tz-aware `Timestamp` and `DatetimeIndex` to reset tz.
CC @rockg, @nehalecky 

```
t = pd.Timestamp('2014-01-01 09:00', tz='Asia/Tokyo')

# tz_localize resets tz holding current tz representation
t.tz_localize(None)
#2014-01-01 09:00:00

# tz_convert reset tz using UTC representation (no changes by this PR)
t.tz_convert(None)
#2014-01-01 00:00:00

idx = pd.date_range(start='2011-01-01 09:00', freq='H', periods=10, tz='Asia/Tokyo')

idx.tz_localize(None)
# <class 'pandas.tseries.index.DatetimeIndex'
# [2011-01-01 09:00:00, ..., 2011-01-01 18:00:00]
# Length: 10, Freq: H, Timezone: None

#  (no changes by this PR)
idx.tz_convert(None)
# <class 'pandas.tseries.index.DatetimeIndex'>
# [2011-01-01 00:00:00, ..., 2011-01-01 09:00:00]
# Length: 10, Freq: H, Timezone: None
```

`idx.tz_localize(None)` is the functionality I've been looking for. Just making sure I understand `tz_convert(None)`, this would be equivalent to a chained `.tz_convert('UTC').tz_localize(None)`?
 @nehalecky 

```
In [2]: t = pd.Timestamp('2014-01-01 09:00', tz='Asia/Tokyo')

In [3]: t
Out[3]: Timestamp('2014-01-01 09:00:00+0900', tz='Asia/Tokyo')

In [4]: t.tz_convert(None)
Out[4]: Timestamp('2014-01-01 00:00:00')

In [5]: t.tz_convert('UTC')
Out[5]: Timestamp('2014-01-01 00:00:00+0000', tz='UTC')

In [6]: t.tz_convert('UTC').tz_localize(None)
Out[6]: Timestamp('2014-01-01 00:00:00')

In [7]: t.tz_convert('UTC').tz_convert(None)
Out[7]: Timestamp('2014-01-01 00:00:00')

In [8]: t.tz_localize(None)
Out[8]: Timestamp('2014-01-01 09:00:00')
```

`tz_localize(None)` essentially just drops the tz (but leaving the time as is), while convert
converts to UTC (first)
 @jreback thanks! Just like I understood. :)
 This also closes #3653 
Nice to see a solution for this! (I initially asked it on stackoverflow in that issue)
 @sinhrks @jreback This is ready?
 @sinhrks pls rebase and ping when green

good 2 go
 @jreback rebased, and now green
 thanks @sinhrks 
