Honor existing attention mask in tokenzier.pad
# What does this PR do?

In #13914, it was highlighted that the `tokenizer.pad` method erases existing `attention_mask` instead of padding them. While it should definitely create them if they don't exist, it shouldn't erase a mask that is passed.
This PR addresses that and adds a common test.

Fixes #13914 