CMakeList.txt fixes

The 'debug' target no longer includes the -Werror switch.

Added -Wincompatible-pointer-types to 'debug' and 'maintainer'
targets.
Removed 'const' from the argv argument in a2test.c

There's no consensus on whether or not main() should have a
'const' argv argument, and the SDL_main wrapper isn't helping,
apparently, so the #ifdef attepmt of dealing with it has been
removed. There will probably be warnings on some platforms no
matter what.
CMakeList.txt fixes, take two

Now they actually do what's intended...

Also, -O0 for 'debug', because even -O1 optimizes out arguments
and whatnot when inlining functions, at least with Clang.
Documented a2_Now() and API message pump behavior

Documented the side effect of a2_Now() and other timestamp related
calls running the API message pump to do work in the API context.
Voice killing logic

Still having some double free and segfaults, but they're tricky
to repeat. Are voices detached and unlinked as intended?
Minor refactoring