remove basecommand.merge_options()

This patch removes the error prone step of merging the baseparsers'
options (the 'Generic Options') with those of the subparser. In fact,
commands are already capable of parsing all options present in the
'Generic Options' option group. The option parsing logic is as follows:

Given a command line such as:
  '--timeout 5 install --user pkg'
pip.parseopt() returns command 'install' with arguments:
  '--timeout 5 --user pkg'
pip.main() executes the above as:
  commands['install'](parser).main('--timeout 5 --user pkg', options)
don't pass around options we're not using anymore
1) have `create_main_parser` construct the parser description.
2) have `create_main_parser` mark the parser as the 'main' parser.
3) remove an extraneus block that's never called.  thanks @netspyer.
4) move 'create_main_parser` to __init__ to avoid circular or embedded imports.
define options once, but don't globally instantiate
command parsing tests
replace `make_option_maker` with `OptionMaker` class
Merge pull request #1202 from qwcode/issue-70

option parsing fixes