Allow updating dict option values instead of replacing them.

Review Request #3896 — Created May 17, 2016 and submitted — Latest diff uploaded

stuhood, zundel
Similarly to list options, this is done by preceding the dict
literal with a '+'.

This allows, e.g., adding new Go matcher patterns in pants.ini
without having to copy the default ones.

Note that this has the side effect of making the implicit default
value the empty dict, instead of None, which is something we've
wanted for a while. So now code using dict-valued options won't
need to check for None.

This implementation is simpler than that of list options, because
lists have the added complication of interpreting --foo=bar as
--foo=+[bar], which is irrelevant here.

CI passes: