Argument migration

Add a DSL to migrate options to different names, migrate them from either being manually passed or from tabs and print a warning telling users to use the new name. Also, migrate `wget` as an example.

CC @adamv @mistydemeo @jacknagel @tdsmith @asparagui for thoughts and review.
I think we can use `find` instead of `each` and `next`:

```rb
deprecated_options.each do |deprecated_option|
  option = options.find { |o| o.name == deprecated_option.old }
  if option
    options.delete(option)
    options << Option.new(deprecated_option.current, option.description)
  end
end
```