Amp Implementation of the Gather and Gather_if

It is the AMP implementation of the Gather and Gather_if.
By mistake Committed as the scatter and scatter_if.