Provide mask_time_indices to `_mask_hidden_states` to avoid double masking
The current behavior for training Hubert masks randomly some "spans" of time according to a `mask_time_indices`  which can be provided or not to the `forward(..., mask_time_indices=Optional[torch.Tensor])` .

When providing this value (_interesting to mask the loss over non masked spans_), the mask was applied outside of the `_mask_hidden_states(...)` function. 

Then, a new mask `_mask_hidden_states(...)` inside was generated potentially masking again some others tokens independently from what was provided through `mask_time_indices`.

This PR provides a fix by ensuring we only mask spans inside `_mask_hidden_states(...)` and correctly apply the masking operating one time.
Thanks a lot for fixing this! Can you also make the fix to `modeling_wav2vec2.py`? Think the same error is there<|||||>and for both tf_hubert and tf_wav2vec2, we need to do the change as well I think <|||||>Thanks a lot!