Backmerging master into develop

#### Operation log:
```bash
renelvon @ merchant ~/Repos/OpenBazaar (develop) % git fetch upstream
renelvon @ merchant ~/Repos/OpenBazaar (develop) % git checkout -b backmerge upstream/develop
Branch backmerge set up to track remote branch develop from upstream.
Switched to a new branch 'backmerge'
renelvon @ merchant ~/Repos/OpenBazaar (backmerge) % git merge --no-ff -m "Merge branch 'master' into develop" upstream/master
Auto-merging node/transport.py
CONFLICT (content): Merge conflict in node/transport.py
Auto-merging node/market.py
CONFLICT (content): Merge conflict in node/market.py
Auto-merging node/db_store.py
Auto-merging node/connection.py
CONFLICT (content): Merge conflict in node/connection.py
Auto-merging checkstyle.sh
Automatic merge failed; fix conflicts and then commit the result.
renelvon @ merchant ~/Repos/OpenBazaar (backmerge ?+) % vim node/transport.py
renelvon @ merchant ~/Repos/OpenBazaar (backmerge ?+) % vim node/market.py
renelvon @ merchant ~/Repos/OpenBazaar (backmerge ?+) % vim node/connection.py
renelvon @ merchant ~/Repos/OpenBazaar (backmerge ?+) % git add node/
renelvon @ merchant ~/Repos/OpenBazaar (backmerge +) % git commit
[backmerge 4089484] Merge branch 'master' into develop
renelvon @ merchant ~/Repos/OpenBazaar (backmerge) % git push -f --set-upstream origin backmerge
Counting objects: 34, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 757 bytes | 0 bytes/s, done.
Total 5 (delta 4), reused 0 (delta 0)
To git@github.com:Renelvon/OpenBazaar.git
 + 9e59068...4089484 backmerge -> backmerge (forced update)
Branch backmerge set up to track remote branch backmerge from origin.
```

#### Conflicts
* Minor conflicts in `node/market.py` due to style fixes in #658.
* Subtle conflict of listener refactor of #678 with commit https://github.com/OpenBazaar/OpenBazaar/commit/bf3fefa61d6f5b81f25e31528e60d028ae85f226 concerning the usage of a single `zmq.Context()`. An extra `ctx` attribute was explicitly added to `PeerListener` and also to `CryptoPeerListener` (via inheritance). The extra attribute is initialized in `PeerListener.__init__`, by a new argument passed from the `TransportLayer`.

@yagoulas and everybody else, please have a look. I am not sure I resolved everything correctly.