Slight test refactors

Makes them (slightly) more readable
Move test rares out into their own file
Added method for shallow clone of tables

Plus some minor shuffling around
Don't allow publishers to decide when events are major

This will decide on when this individual client has seen them (will be
used to play notification sounds, etc.), so will require interaction
with the "known rares" list (NYI)
Track known rares so we can tell if an event is Major

Also reset state between tests, so they don't interfere with each other
Add test for death events being always major
Don't print invalid rare data

This is annoying in the test output for now; might put it back when
running properly in-game