We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.
This fixes BananaShower and JuiceStreams in osu!catch.
This also makes HitObject abstract and cleans up convert HitObject implementations.
Due to unnoticed past changes TestSceneDirectPanel has regressed in that
clicking the preview track button would crash due to an unregistered
IPreviewTrackOwner dependency.
Make the test scene itself implement that empty interface and cache
itself as IPreviewTrackOwner so that preview tracks lower down can
resolve the dependency.
As the test is purely visual and has no assertions, and the important
logic in that area (preview track playing logic) is already well-covered
enough elsewhere, no further changes were made.