IRGen: Shuffle self value for witness method partial applications
We need to splice self inbetween the polymorphic arguments and the error
argument but before the self metadata and witness table arguments.
rdar://28302820
(cherry picked from commit 80ea1524d0608dba947e6abe34f4b4c6ad8942c2)