Use localize when available on tzinfo object

pytz timezones has a localize method that converts a timezone with
historical accuracy. For instance the first timezone available for
Singapore in pytz has it set at GMT+6:55 where as it in 2013 is set as
GMT+08:00, to work together with the rest of Asia which is pretty much
all of it GMT+08:00.

So by not respecting localize when it's available will create subtle bugs
when being used within Django for instance