Proposed fix to #1180 (and maybe #932 & #1104)

This is a rebased final version of a proposed solution to fix
issues #932, #1104 & #1180. Following changes have been done:

* Implemented a new class `PipXmlrpcTransport` using a
  contained `PipSession` object.

* Modified the `pip/commands/search.py` to make use of the
  `PipXmlrpcTransport` class.

* Properly initialized options for testing `SearchCommand`:
  - Changed `options_mock` to an `options` object built from
    `parse_args`, to properly initialize default options.
Close requests session in `search` command

* Added a `with` block to handle `session` life-cycle. As commented
  in #1902
Passing headers per-request in PipXmlrpcTransport

* Changed `PipXmlrpcTransport` to pass headers at request scope
* Added summary line to the changelog
Merge pull request #1902 from tnotstar/develop

Proposed fix to #1180 (and maybe #932 & #1104)