More random cleanups

There's a lot of random cleaning up in this one--see commit logs for details.

This shouldn't affect playd's functionality, but testing is encouraged.
can the initialisation not be moved to the header?