Refactor trans_call to separate out the translation of the arguments, environment, and return pointer
auto merge of #5445 : nikomatsakis/rust/issue-3678-refactor-trans_call, r=graydon

Refactor trans_call to separate out the translation of the arguments, environment, and return pointer.  Towards #3678.  r? @brson