Allow none-tensor fields in BatchEncoding
# What does this PR do?

This PR allows BatchEncoding to have non-tensor fields. This is useful for example when doing multi-task learning, I can add a task name (str) in the batch, and use it to decide the computation later on. 
Without this PR, I cannot use `.to('cuda')` if there is str in the batch.

I don't know who to tag. @LysandreJik


This issue has been automatically marked as stale and been closed because it has not had recent activity. Thank you for your contributions.

If you think this still needs to be addressed please comment on this thread.