Clean up constants; use vector for buffer.
Some IoReactor :lipstick:.

Move loop period to io_reactor, rename it PLAYER_UPDATE_PERIOD, and
remove unnecessary IoReactor::MainLoop.
Move POSITION_PERIOD into Playslave.
Move AudioOutput constants and soft-remove Boost ringbuf.

The Boost ringbuf shows little promise of being useable any time soon.
Make PaRingBuffer power a runtime factor.

There is no benefit for it being compile-time, and it prevents constants
from being declared in the implementation.
Remove Boost ringbuffer.

If anyone wants to try get it to work, then feel free to bring it back.
Otherwise, the PA ringbuffer is more than sufficient.
Merge PaRingBuffer and RingBuffer.

No point in these being separate now.  We ain't gonna need it.
Remove RINGBUF_SIZE.

This required a refactor of PreFillRingBuffer.
Move RINGBUF_POWER to cpp.
Remove spin-up.

This seems unnecessary now, given that in the delay between a load
command and a play command the decoder should be fired quite a bit.
Delete constants.h.

Unnecessary now.
Remove SPINUP_SIZE.
Remove ffmpeg imports in AudioOutput.
Constify the sample format conversion maps.
Un-uniquify command set, remove set constructor.

None of this is necessary now, given AddUnary and AddNullary.
Move Doxygen comments to cmd.hpp.

*annoys Charles*
Remove useless type definition; comment.
Fluent API: use references instead of pointers.
Use cmd method chaining.
Remove Playslave::MainLoop().

Subsumed by io->Run().