fix($http) - allow for user removal of default headers by passing header functions

Adds additional testing and fixes #5784


CLA is signed, 2 additional tests (1 that failed) in the latest build of angular.js