The final set of compile or link options used for a target is constructed by
accumulating options from the current target and the usage requirements of
it dependencies.  The set of options is de-duplicated to avoid repetition.
While beneficial for individual options, the de-duplication step can break
up option groups.  For example, ``-D A -D B`` becomes ``-D A B``.  One may
specify a group of options using shell-like quoting along with a ``SHELL:``
prefix.  The ``SHELL:`` prefix is dropped and the rest of the option string
is parsed using the :command:`separate_arguments` ``UNIX_COMMAND`` mode.
For example, ``"SHELL:-D A" "SHELL:-D B"`` becomes ``-D A -D B``.
