Better symbolises the intent of this generator which is to convert
hitobjects in their most simple forms - anything with an end time
converts to a hold or otherwise converts to a normal note.
A big part of these changes is refactoring, which is somewhat necessary
because it was previously implemented as two separate pathways which
in-fact need to be joined at the hip when handling spinners.
I've chosen to use `IHasLegacyHitObjectType` here because there's no
other flag that allows us to tell `ConvertHold` apart from
`ConvertSpinner`.