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.
Yeh, we could, I guess I just thought the hash syntax read a bit better. Longer-term I thought of the possibility of having multiple options map to multiple options but dunno if I'm over engineering.