Cleaned up some more of the interaction code driving the stat allocation page. No longer requires all points be allocated, can skip allocation, partially allocate points, allocate remaining points at any time.
Cleaned up parts of the perk selection interaction code. Can select multiple perks in one run, can skip perk selection, supports partial allocation of perks, allows the player to interact with the taken/unavailable perk "buttons" so they can view info about them.

I still want to add a text-only option for accessibility reasons; I may tie it to the options module (ie a "Where possible, use available raw text variants of modules").
Not happy with some of the styling/formatting used in the Perk selection screen. Gonna let it stew for a day or two and decide what to do.

Retargetted the button availability code for the level up button handler. The button will load the (first) available page that makes sense; if there are no unallocated stat points, the button will skip to the perk selection screen.