Make flag definitions additive.

This allows them to be added to via environment variables.
Ignore objs directory.
Add new clang-format, and do an initial format run

Yes, this is a space commit.  Soz.
Use any_of for state checking.
Split out resampler.

This replaces a conditional with polymorphism, and also makes the
resampling logic a bit cleaner.
Replace frame pointers with a vector buffer.

This is a work in progress, and there are some bugs.
Rename au_in to AudioDecoder.

This has been a long time coming…
Use pair in audio callback.

There is method in the madness: see next commit!
Split failure on audio callback.
Use OOP wrapper around ring buffer.
Re-format errors.hpp.
Add sample formats enum.
Factor out BytesPerSample.
Add and use sample format maps for converting.

This currently maps, circuitously, to and from SampleFormat.  This is to
allow the PortAudio and ffmpeg code to be separated later.
Don't attempt to load with an empty filename
Decouple PortAudio from AudioDecoder.

AudioOutput now takes full responsibility for setting up PortAudio,
whereas AudioDecoder now only talks to ffmpeg.  This should make
swapping each out later easier if needs be.
Fix #6.

The AudioOutput wasn't taking the hint that there are no more packets to
decode, and sent nonexistent frames to the ring buffer.  This
is now fixed, and assertions have been added to make future regressions
more obvious.
Fix #4.

Simple, really: we weren't checking to see if the command word list was
empty.
Generalise time unit converter, use map.

LordAro will hate this.
Factor out time parsing.