[GPTJ] enable common tests and few fixes
# What does this PR do?

Currently, GPTJ does not run common tests because its testes class does not subclass `ModelTesterMixin, GenerationTesterMixin`.  This PR enables common tests for GPTJ and fixes a few things along the way.
I've run the slow tests manually and verified that they pass.

Thanks a lot, @sgugger  for spotting this!

cc @StellaAthena 

Fixes #14107



@patil-suraj For the specific issue of `resize_token_embeddings` on gptj (#14107), I got it to work by changing two methods in modeling_gptj.py below. I'm not sure this is right because the model needs to train 2 epochs to get a good result whereas I almost always need just 1 epoch with other model types (gpt-2, gpt-neo, etc.). Will this PR cover the `resize_token_embeddings` issue? It doesn't seem to make changes to these methods.

```
def get_output_embeddings(self):
    return self.lm_head

def set_output_embeddings(self, new_embeddings):
    self.lm_head = new_embeddings
```<|||||>> @patil-suraj For the specific issue of `resize_token_embeddings` on gptj (#14107), I got it to work by changing two methods in modeling_gptj.py below. I'm not sure this is right because the model needs to train 2 epochs to get a good result whereas I almost always need just 1 epoch with other model types (gpt-2, gpt-neo, etc.). Will this PR cover the `resize_token_embeddings` issue? It doesn't seem to make changes to these methods.
> 
> ```
> def get_output_embeddings(self):
>     return self.lm_head
> 
> def set_output_embeddings(self, new_embeddings):
>     self.lm_head = new_embeddings
> ```

@patil-suraj Nevermind! It looks like you caught this and also made additional changes!<|||||>Looks good to me too!