Implement options scope name deprecation.

Review Request #3884 - Created May 13, 2016 and submitted

Benjy Weinberger
jsirois, stuhood, zundel

Allows an Optionable to specify that its current scope is
a new name for an older, deprecated scope.

Takes option values from both scopes, with the usual ranked value
logic (the deprecated scope wins on rank ties), but issues a warning
if any values were explicitly specified on the old scope.

Note: Removes an update() method on OptionValueContainer that is not
used afaict. Adds instead an augment() method with ~similar semantics,
but that takes an OptionValueContainer instead of an attr dict.

I might rename augment -> update once I have a clean CI that proves
that the old update() was indeed not used.

CI passes:

Benjy Weinberger
Stu Hood
John Sirois
John Sirois
Benjy Weinberger
Review request changed

Status: Closed (submitted)

Change Summary: