For unknown reasons, the text pointer list for Oak's Lab is duplicated. This is currently implemented by treating the two text pointer lists as one large list. This leads to duplicate labels and some confusing logic. Refactor the code to treat the two text pointer lists separately. This lets us remove several labels. It also makes the code which sets the text pointer list self-documenting.
Use OPP_ constants separate from trainer constants since valid opponents can be all Pokemon and trainers
and other clean up