Openbazaar python launcher

new pull request after 1st round of reviews.
Thanks @Renelvon this has the merged changes from your repo.

(@Renelvon I kept that REVERT commit you put there as I'm not sure I understood what was right or wrong about it, I figured it'd be easier to fix here now)
oh, this is probably because I was moving this code around quite a lot when I was coding this, I can put it back, although it makes that method `start_node` uglier. If it were for me, I'd compress the body of `start_node` into code that's more pleasant to read:


```
def start_node(ob_ctx):
    logging = create_logging()
    application = create_market_application(ob_ctx)
    setup_upnp(application, ob_ctx)
    try_browser_open(ob_ctx)
    setup_shutdown_signals(application)
    start_io_loop()
```

hell of a lot easier to maintain.