add a new --list option to update a list of values

Support --list With --set and --del, which will
add or remove the specified value from a set of values.
Also supported is --list-sep to all control over the list delimiter,
which defaults to ", ".  Also existing lists that are comma
separated without a space are autodetected and updated accordingly.