Makes HfArgumentParser compatible with Python 3.9
Python 3.9 changed the format of the string serialization of `typing.Optional`.

For example, `str(typing.Optional[str])` is `typing.Union[str, NoneType]` in python 3.8 and `typing.Optional[str]` in Python 3.9.
LGTM