[util/setopts] Add wrapper for setting ivars from hashes
[util/setopts] Allow options to specify aliases

We may not have a 1:1 mapping of option keys to instance variables, or
have aliases or other interesting things. To deal with such complexities
this commit changes setopts to take a map of key names => variable names.
[util/setopts] Allow values to be ignored
Merge branch 'maint/master/setopts'