Perform invasive surgery on Player.

Mainly removing a lot of useless layers of indirection.
Streamline player subcomponents.

Player is now built from existing player components.
For the more buzzwordly-minded of you, it now uses 'dependency
injection' or something like that.

This allows us to set the position delay much more easily, without
needing a setter method.
Simplify ResponseSources.

Now, ResponseSource takes its intended sink in the ctor, and cannot
have its sink changed later.

Also, Emit is now const in its argument.

Changes pretty much everything, because pretty much everything is
either a ResourceSource or constructs one.