Refactor Makefiles to build a noinst library for parsing args

Prevents this automake warning about possible forward-incompatibility:

$ ./autogen.sh
...
cpp/tests/Makefile.am:16: warning: source file '$(top_srcdir)/utils/parseargs.cc' is in a subdirectory,
cpp/tests/Makefile.am:16: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
cpp/tests/Makefile.am:20: warning: source file '$(top_srcdir)/utils/parseargs.cc' is in a subdirectory,
cpp/tests/Makefile.am:20: but option 'subdir-objects' is disabled
parallel-tests: installing './test-driver'
test/Makefile.am:58: warning: source file '../utils/parseargs.cc' is in a subdirectory,
test/Makefile.am:58: but option 'subdir-objects' is disabled

$ automake --version
automake (GNU automake) 1.14.1
...

https://bugs.freedesktop.org/show_bug.cgi?id=83839