It's not really fair to refer to the main index function as "legacy" if it's actively being used. All controller-specific 'get' filtering functions are now appended with the name of the controller rather than having it in the middle.
On second thought, reverting this so that in the case that the function is *not* evaluated at compile-time, the button values function is not called twice.
Move shared button identifiers from enum to an inline function, so formerly shared identifiers can be separately filtered and processed on a class-by-class basis.
Fixes#611.