Closes #3098.
# Conflicts: # osu.Game.Rulesets.Mania/UI/ManiaPlayfield.cs # osu.Game.Rulesets.Mania/UI/ManiaRulesetContainer.cs
# Conflicts: # osu.Game/Rulesets/Edit/HitObjectComposer.cs # osu.Game/Screens/Edit/Screens/Compose/Layers/HitObjectMaskLayer.cs
# Conflicts: # osu.Game.Rulesets.Mania/Objects/Drawables/DrawableHoldNote.cs # osu.Game.Rulesets.Mania/UI/ManiaPlayfield.cs # osu.Game.Rulesets.Mania/UI/ManiaRulesetContainer.cs # osu.Game.Rulesets.Mania/UI/ManiaStage.cs
With .NET core 2.0+ this is as efficient as the ugly code we've been using.
# Conflicts: # osu.Game/Rulesets/UI/Scrolling/ScrollingPlayfield.cs