Fix astimezone

The main goal of this patch is to ensure the datetime.astimezone returns the fake object if needed. Some other tests were fixed along the way.

Hopefully, my intentions are clear and fixes are valid. If so, could you please merge it to the upstream and upload a new release to PyPI. Thanks.