Fix `.annotation default` and use `String.Other`

Default annotations with enums or attributes were lexed wrong. The type
was lexed as the element name and the type name as the type.

Element names and type names are now lexed as `String.Other`. They have
the tag `CONSTANT_Utf8` in the constant pool, so lexing them as strings
makes some sense.

This commit also rearranges the lexer in various minor ways.