Important refactors, introducing OpenBazaarContext to carry runtime configuration options. [WIP - still very unstable]

  - ioloop.install() redundancy cleanup, only installed once on openbazaar_daemon.

  - refactored ioloop's instantiation and startup out of openbazaar_daemon.start_node()
     as a new method 'start_ioloop()', invoked at the beginning of start_node() inside its
     own daemon thread.

  - New OpenBazaarContext object to hold all runtime configuration parameters and more
    runtime related information.

  - Argument parser now uses default values defined in getDefaults(),
    no need for repetition of these defaults, now can be maintained in a single place.

  - 'database' argument now parsed and used by OpenBazaarContext as 'db_path',
    this avoids confusion with a Obdb object. On the command line, users can still
    pass the --database parameter, irrelevant inside the codebase.

  - Periodic IP Checker for users trying to run on Tor now optional.
    Use runtime option '--enable-ip-checker' to enable periodic ip checking.

  - New parameter '--log-level' to change log verbosity.

  - Refactored signatures of MarketApplication.__init__, CryptoTransportLayer.__init,
    TransportLayer.__init__(), openbazaar_daemon.start_node(),

  - Removed code execution on openbazaar_daemon, argument parsing was redundant
    and this code will be (hopefully) unnecessary as we'll be getting rid of run.sh
    by the end of this feature branch.

  Had a chance to learn even more doing this, I may have some questions about the
  market_id when not specified. I couldn't find where it's generated @hoffmabc