fix #586 Incorrect timezones

    As explained in #586 the time fractions are rounded up (5.30 becomes
    6).
    Also another issue was that some timezones appeared multiple times.

    The rounding issue was solved by adding the precision argument to
    the round function.
    The reason why some zones where multiplicated was that
    listAbbreviations method is returning all historical configurations
    for each timezone. Thus, for iteration we are using the listIdentifiers method
    that returns an array of all timezones and for correct offset data
    we are basing on the DateTime object getOffset method.

    Instead of 1176 timezones we now have only 552 timezones (the
    correct number).
    The timezones that include fraction of times are displayed
    correctly.