fix($http): ensure default headers PUT and POST are different objects

Send PUT and POST through copy() to make sure they are not the same.

Closes #5742
Closes #5747
Closes #5764