Timezone handling unittest failures on Debian
Hi,

While buildling pandas 0.20.3 on Debian I had 3 timezone handling related test failures.

I also get the 3 errors when running the tests in a virtualenv with 0.20.3 installed via pip

The error tracebacks:

```
================================================= FAILURES ==================================================
_____________________________ TestTimeZoneSupportDateutil.test_ambiguous_flags ______________________________

self = <pandas.tests.tseries.test_timezones.TestTimeZoneSupportDateutil object at 0x7f742d3702e8>

    def test_ambiguous_flags(self):
        # November 6, 2011, fall back, repeat 2 AM hour
        tz = self.tz('US/Eastern')
    
        # Pass in flags to determine right dst transition
        dr = date_range(datetime(2011, 11, 6, 0), periods=5,
                        freq=offsets.Hour(), tz=tz)
        times = ['11/06/2011 00:00', '11/06/2011 01:00', '11/06/2011 01:00',
                 '11/06/2011 02:00', '11/06/2011 03:00']
    
        # Test tz_localize
        di = DatetimeIndex(times)
        is_dst = [1, 1, 0, 0, 0]
        localized = di.tz_localize(tz, ambiguous=is_dst)
        tm.assert_index_equal(dr, localized)
        tm.assert_index_equal(dr, DatetimeIndex(times, tz=tz,
                                                ambiguous=is_dst))
    
        localized = di.tz_localize(tz, ambiguous=np.array(is_dst))
        tm.assert_index_equal(dr, localized)
    
        localized = di.tz_localize(tz,
                                   ambiguous=np.array(is_dst).astype('bool'))
        tm.assert_index_equal(dr, localized)
    
        # Test constructor
        localized = DatetimeIndex(times, tz=tz, ambiguous=is_dst)
        tm.assert_index_equal(dr, localized)
    
        # Test duplicate times where infer_dst fails
        times += times
        di = DatetimeIndex(times)
    
        # When the sizes are incompatible, make sure error is raised
        pytest.raises(Exception, di.tz_localize, tz, ambiguous=is_dst)
    
        # When sizes are compatible and there are repeats ('infer' won't work)
        is_dst = np.hstack((is_dst, is_dst))
        localized = di.tz_localize(tz, ambiguous=is_dst)
        dr = dr.append(dr)
        tm.assert_index_equal(dr, localized)
    
        # When there is no dst transition, nothing special happens
        dr = date_range(datetime(2011, 6, 1, 0), periods=10,
                        freq=offsets.Hour())
        is_dst = np.array([1] * 10)
        localized = dr.tz_localize(tz)
        localized_is_dst = dr.tz_localize(tz, ambiguous=is_dst)
        tm.assert_index_equal(localized, localized_is_dst)
    
        # construction with an ambiguous end-point
        # GH 11626
        tz = self.tzstr("Europe/London")
    
        def f():
            date_range("2013-10-26 23:00", "2013-10-27 01:00",
                       tz="Europe/London", freq="H")
            pytest.raises(pytz.AmbiguousTimeError, f)
    
        times = date_range("2013-10-26 23:00", "2013-10-27 01:00", freq="H",
                           tz=tz, ambiguous='infer')
        assert times[0] == Timestamp('2013-10-26 23:00', tz=tz, freq="H")
    
        if dateutil.__version__ != LooseVersion('2.6.0'):
            # see gh-14621
>           assert times[-1] == Timestamp('2013-10-27 01:00:00+0000',
                                          tz=tz, freq="H")
E           AssertionError: assert Timestamp('2013-10-27 01:00:00+0100', tz='dateutil//usr/share/zoneinfo/Europe/London', freq='H') == Timestamp('2013-10-27 02:00:00+0100', tz='dateutil//usr/share/zoneinfo/Europe/London', freq='H')
E            +  where Timestamp('2013-10-27 02:00:00+0100', tz='dateutil//usr/share/zoneinfo/Europe/London', freq='H') = Timestamp('2013-10-27 01:00:00+0000', tz='dateutil/Europe/London', freq='H')

pandas/tests/tseries/test_timezones.py:567: AssertionError
____________________________________ TestTimeZones.test_ambiguous_compat ____________________________________

self = <pandas.tests.tseries.test_timezones.TestTimeZones object at 0x7f742d2ef4e0>

    def test_ambiguous_compat(self):
        # validate that pytz and dateutil are compat for dst
        # when the transition happens
        tm._skip_if_no_dateutil()
        tm._skip_if_no_pytz()
    
        pytz_zone = 'Europe/London'
        dateutil_zone = 'dateutil/Europe/London'
        result_pytz = (Timestamp('2013-10-27 01:00:00')
                       .tz_localize(pytz_zone, ambiguous=0))
        result_dateutil = (Timestamp('2013-10-27 01:00:00')
                           .tz_localize(dateutil_zone, ambiguous=0))
        assert result_pytz.value == result_dateutil.value
        assert result_pytz.value == 1382835600000000000
    
        # dateutil 2.6 buggy w.r.t. ambiguous=0
        if dateutil.__version__ != LooseVersion('2.6.0'):
            # see gh-14621
            # see https://github.com/dateutil/dateutil/issues/321
>           assert (result_pytz.to_pydatetime().tzname() ==
                    result_dateutil.to_pydatetime().tzname())
E           AssertionError: assert 'GMT' == 'BST'
E             - GMT
E             + BST

pandas/tests/tseries/test_timezones.py:1263: AssertionError
_______________________________________ TestDST.test_fallback_plural ________________________________________

self = <pandas.tests.tseries.test_offsets.TestDST object at 0x7f742d199fd0>

    def test_fallback_plural(self):
        # test moving from daylight savings to standard time
        import dateutil
        for tz, utc_offsets in self.timezone_utc_offsets.items():
            hrs_pre = utc_offsets['utc_offset_daylight']
            hrs_post = utc_offsets['utc_offset_standard']
    
            if dateutil.__version__ != LooseVersion('2.6.0'):
                # buggy ambiguous behavior in 2.6.0
                # GH 14621
                # https://github.com/dateutil/dateutil/issues/321
                self._test_all_offsets(
                    n=3, tstart=self._make_timestamp(self.ts_pre_fallback,
                                                     hrs_pre, tz),
>                   expected_utc_offset=hrs_post)

pandas/tests/tseries/test_offsets.py:4860: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pandas/tests/tseries/test_offsets.py:4803: in _test_all_offsets
    self._test_offset(offset_name=name, offset_n=n, **kwds)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pandas.tests.tseries.test_offsets.TestDST object at 0x7f742d199fd0>, offset_name = 'minutes'
offset_n = 3
tstart = Timestamp('2013-11-03 01:59:59.999999-0700', tz='dateutil//usr/share/zoneinfo/US/Pacific')
expected_utc_offset = -8

    def _test_offset(self, offset_name, offset_n, tstart, expected_utc_offset):
        offset = DateOffset(**{offset_name: offset_n})
    
        t = tstart + offset
        if expected_utc_offset is not None:
>           assert get_utc_offset_hours(t) == expected_utc_offset
E           AssertionError: assert -7.0 == -8
E            +  where -7.0 = get_utc_offset_hours(Timestamp('2013-11-03 01:02:59.999999-0700', tz='dateutil//usr/share/zoneinfo/US/Pacific'))

pandas/tests/tseries/test_offsets.py:4810: AssertionError
============================== 3 failed, 454 passed, 5 skipped in 7.12 seconds ==============================

```

output of show_versions:

INSTALLED VERSIONS
------------------
commit: None
python: 3.5.4.final.0
python-bits: 64
OS: Linux
OS-release: 4.12.0-1-amd64
machine: x86_64
processor: 
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.20.3
pytest: 3.2.2
pip: 9.0.1
setuptools: 36.4.0
Cython: None
numpy: 1.13.1
scipy: None
xarray: None
IPython: None
sphinx: None
patsy: None
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: None
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: 0.999999999
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: None
s3fs: None
pandas_gbq: None
pandas_datareader: None
>>> 
