Refactor GPT2
# What does this PR do?

This PR refactors GPT2 model to make it more consistent with the rest of the models in the lib. These are mostly cosmetic changes and uses better names instead of those `nx, n_state` etc.

This does not cause any performance regression and I've verified that all slow tests are passing.
