With .NET core 2.0+ this is as efficient as the ugly code we've been using.
This also - Renames TextAwesome to SpriteIcon. - Removes the default size of "20" from SpriteIcon (now defaults to the underlying texture size).
Depends on https://github.com/ppy/osu-framework/pull/837
References now use the Create*-names instead of the outdated Get*-names to create instances of FlowStrategies.
Also adds visual toggle state for toggleable buttons.