BUG: date_range(str, tz=str) and date_range(Timestamp) handle tz discontinuity differently
xref #7825
xref (addtl test cases) #7901 

I believe `Out[2]` is correct and `Out[3]` is a bug, and that others will agree with me.
I believe `Out[4]` is a bug, `Out[7]` is correct and `Out[10]` is a bug, but that I will have to do some work to convince others to agree with me.

``` python

In [1]: import pandas as pd

In [2]: list(pd.date_range('2013-11-1', tz='America/Chicago', periods=7, freq='D'))
Out[2]: 
[Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-02 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-03 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-04 00:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-05 00:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-06 00:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-07 00:00:00-0600', tz='America/Chicago', offset='D')]

In [3]: list(pd.date_range(pd.Timestamp('2013-11-1', tz='America/Chicago'), periods=7, freq='D'))
Out[3]: 
[Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-02 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-03 00:00:00-0500', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-03 23:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-04 23:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-05 23:00:00-0600', tz='America/Chicago', offset='D'),
 Timestamp('2013-11-06 23:00:00-0600', tz='America/Chicago', offset='D')]

In [4]: list(pd.date_range('2013-11-1', tz='America/Chicago', periods=7, freq='24H'))
Out[4]: 
[Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-02 00:00:00-0500', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-03 00:00:00-0500', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-04 00:00:00-0600', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-05 00:00:00-0600', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-06 00:00:00-0600', tz='America/Chicago', offset='24H'),
 Timestamp('2013-11-07 00:00:00-0600', tz='America/Chicago', offset='24H')]

In [5]: out = [pd.Timestamp('2013-11-1', tz='America/Chicago')]

In [6]: for i in range(6):
   ...:     out.append(out[-1] + pd.offsets.Hour(24))
   ...:      

In [7]: out
Out[7]: 
[Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-02 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-03 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-03 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-04 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-05 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-06 23:00:00-0600', tz='America/Chicago')]

In [8]: out = [pd.Timestamp('2013-11-1', tz='America/Chicago')]

In [9]: for i in range(6):
   ...:     out.append(out[-1] + pd.offsets.Day(1))
   ...:      

In [10]: out
Out[10]: 
[Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-02 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-03 00:00:00-0500', tz='America/Chicago'),
 Timestamp('2013-11-03 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-04 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-05 23:00:00-0600', tz='America/Chicago'),
 Timestamp('2013-11-06 23:00:00-0600', tz='America/Chicago')]
```
