Dataloader chokes when input text contains certain emojis/characters
When using the NER and intent/slot models with a dataset containing certain characters (examples below), training errors out like this:

`RuntimeError: stack expects each tensor to be equal size, but got [75] at entry 0 and [76] at entry 28`

The underlying cause is that tokens made up solely of such characters, when tokenized, yield nothing -- no tokens or subtokens. Yet these lines still get executed during dataset formation:

```
loss_mask.append(1)
subtokens_mask.append(1)
```

As a result, the loss_mask and subtokens_mask are longer than the other input vectors and we get something like this:

```
input_ids:  torch.Size([1, 75])
segment_ids:  torch.Size([1, 75])
input_mask:  torch.Size([1, 75])
subtokens_mask:  torch.Size([1, 76])
loss_mask:  torch.Size([1, 76])
labels:  torch.Size([1, 75])
```

The workaround I'm using is to convert the problematic tokens into `[UNK]` in my own data, prior to attempting to train. But I think some logic should be added in the NeMo data processing to use the `[UNK]` token whenever tokenization yields an empty list of subtokens. 

I don't think the solution should be to skip these tokens, because they could be part of entities that users are trying to tag.

-------------------------------------------------------------------
Example tokens/characters causing this problem:
`\U000fe814\U000fe814\U000fe814`
`\U000feb7b`
`\U000fe814\U000feb0e\U000fe814`
`\U000fe334`

Example document:
`Baby update ; guess what , it's a boy ❤️ my lil baby boy \U000feb18 mommy &amp; daddy love you mi amor \U000fe823\U000fe32c`