Use widget for adding / removing local.repos

Also read / write `local.repos`, `external.packages` as vector
arguments, rather than single strings. The interface allowing for
`external.packages` to be written as a comma-separated list of values is
kept; ie, we accept `packrat::set_opts(external.packages = "foo, bar")`
as well as `packrat::set_opts(external.packages = c("foo", "bar"))`.