Don't set properties on nonexistent targets
Use consistent ordering for libArxIO sources
Propagate source file cxx flags in unity builds
Integrate libArxIO into the shared BuildSystem

This reduces duplicated compilation in non-unity builds. To share source
files between targets, we add -fPIC if *any* of the targets using the
source file is a shared library.

This also enables unity build for libArxIO and fixes compile errors
with mingw caused by source files used in libArxIO and the unity build
for other executables being marked as header-only.

Also install libArxIO into the proper location.
Rename SHARED_BUILD_{EXECUTABLES => BINARIES}
Rename EXESET to BINARIES
Rename exeset to binaries
Rename exe => bin
Rename all_execs => binaries_remaining
Change exe => binary in coments
Rename _shared_build_add_{executable => binary}
Remove unused -a flag from the set script command

It was stubbed out anyway.
Improve add_{executable,library}_shared API

Move optional properties to separate functions.