Refactor and test init_additional_STUN_servers.

* Make it accept any server sequence.
* Make it idempotent.
Test and refactor.

* Import modules, not names.
* Stricten port tests.
* Rename check_NAT_status to get_NAT_status.
* Test is_ipv6_address.
* Fix docstrings and test get_peer_url.
Merge pull request #841 from Renelvon/test_network_util

Mini refactor and test network util
If port arg is set then obey it don't ignore it
Missing CryptoPeerConnection method bug
Why check again? Redundant
Catch legacy message unpack exception
Merge pull request #873 from hoffmabc/decline-legacy-msgs

Hybrid network fixes
STUN check fixes. Re Issue #816

 - Now STUN server is returning what should be the outer port on which
   it could listen to the OpenBazaar node (a random one)
 - The --server-port argument is ignored unless --disable-stun-check is passed.

The reason being default behavior is configured so that OpenBazaar will try to establish all its connections without user intervention.
A user that knows on what port they want OpenBazaar to run and who is manually forwarding ports should then read the help and understand the port is being ignored due to the default STUN check openbazaar attempts.

  Try setting a manual port, the one you have set on your router.
  `openbazaar --disable-stun-check --server-port <your_port> -d --log-level 10 start`

  Try letting openbazaar do its work by looking up a valid incoming server port via STUN, and to automatically do the UPnP port mapping on such port.
   `openbazaar start`