Make changing of function argument types possible
This adds an optional argument to the addArgument function of
functionType, which specifies where the argument is being inserted.
Thus, you can modify types by removing and re-adding them. Note that you
have to re-assign the type to the declaration again after doing so.
REVIEW:101762