This allows AsmParsers to directly access the first token of a statement. This was creating an issue for statements that aren't lead by a token other than an identifier.
This also creates target hooks for checking if an identifier is a label and if AsmParser itself should parse assignment expressions.
"r31:30 = r21:20" is a register assignment. This trips up the parser because "r31:" looks like a label and an equals sign tells it to parse this as an assignment expression instead of an instruction.