Implement Player

Thisa commit updates tests where parent behaviour has changed. Other mechanical
updates to tests to use Player are in a later commit.
Reinstate pause functionality