This also allows *all* panels to be re-used based on equality, as
originally intended. Beatmap updates should be handled correctly without
a full (flashing) recreation of panels now.
This is a minimal implementation in order to keep moving forward.
For simplicity I've copied over the old implementation verbatim. Note
that this is beatmap*set* based randomisation, which means that when
panels are split up by difficulty, it is still randomising by set (with
the difficulty choice being left up to the user recommendation system).
I think this is what we want, but if it isn't, any changes can come
later.
This isn't strictly required, but there should be no gaurantee or
requirement that the references are equal in these checks, so it's best
change them as such.