feat ($http): Add custom createXhr factory to config object

To be able to construct non-standard or customised XHR objects a factory an optional factory function can be added to the config object. This is required for use of the mozAnon and mozSystem options for FirefoxOS.
See https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#XMLHttpRequest() for details.

This is an alternative solution to the one suggested in PR  #7903. Closes #2318
You can also set it on the defaults object so that you can configure it globally as well..