Set-DynamicParameterVariables changes

Original code was failing to set variables which already exist in a parent scope.  Code has been updated to always set the bound parameters as variables in the caller.

A side effect of this is that the $BoundParameters, $ArgumentList and $ScriptBlock variables in our loading script block (particularly the latter two) might be overwritten when Set-DynamicParameterVariables is called, so those have been copied to names unlikely to have collisions.
Set-DynamicParameterVariables update

This function now takes advantage of the more recent IsCommonParameter functionality, which bases decisions on command metadata rather than assuming that all commands support all common params (paging, shouldprocess, etc.)