* Move steps from ctor to a separate basic test.
* Wait for barrage to complete in basic test, as not doing so polluted
state of other tests.
* Reset score processor after every test.
`CatchHitWindows` were a vestige from the past, and were not actually
used anywhere except for the hit error meter test, giving off an
appearance that the hit error meter was working properly.
`CatchHitObject` actually specifies empty hit windows.
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.