local/core: Update random tests to be more predictable

- Replace setting the random seed with mocking out shuffle with reverse. This
  makes tests easier to reason about while still being able to test correct
  behaviour.
- Increases number of tracks to four to avoid test passing due to symetry in
  plain and reversed lists.
- Made test_eot_track_with_random_after_append_playlist actually test eot and
  not next.
- Found a test failure in handling of test_random_until_end_of_playlist, fix in
  next commit.
local/core: Add and fix more random related tests.

- Adds tests for eot_track vs next_track as we were only testing the one code
  path.
- Makes test_random_until_end_of_playlist_and_play_from_start actually test
  random and not repeat.
- Adds test_play_track_then_enable_random which is the underlying bug covered
  by the regression test for issue #17.