disable public ip detection/updating when run.sh -i argument is used

fixes #472

Signed-off-by: Thomas Stilwell <stilwellt@openlabs.co>
Search Updates

Refactoring based on feedback

Debugging and Timeout

- Remove superfluous debugging statements
- Up timeout to 10 seconds for slower peers (based on testing)

Add threading and check for empty tuples

knownNodes should not add guid-less tuples

Remove verbose debugging statements

These bad boys clog up the logs and don't serve much purpose.

Fix log size.

Disable search_for_my_node temporarily

This needs rethinking because of the nature of our network.

Re-insert lambda

I know we removed the lambda but the callback needs the key value or it fails.

Remove unused import

Grammar fix

Lambda removal

Fixed redundant urlparse calls

Removed conditional cruft

Refactor if.

* Terminate on ValueError `else` proceed.

Execute removeContact inside try.

* It may raise ValueError if contact is absent.

No need to double-check.

* Contact class overloads equality; removing a contact is
  as straightforward as removing a contactID. Check the
  unit tests for kbucket::removeContact.
Moved vagrant-cachier from :box to :machine scope. [Fixes #650] [ci skip]
Merge pull request #610 from benemorius/disable-ip-update

disable public ip detection/updating when run.sh -i argument is used
Merge pull request #608 from hoffmabc/SearchTime

[Ready for review/merge] Search time
Fix typo.
icanhazip: use ipv4 subdomain to receive only ipv4 addresses

Signed-off-by: Thomas Stilwell <stilwellt@openlabs.co>
Abstract kbucket unit tests from GUID implementation.
Update README.md
[TDD] Unit tests for node/connection.py.

* Check initialization of PeerConnection and CryptoPeerConnection.
Refactor and fix PeerConnection and CryptoPeerConnection.

* CryptoPeerConnection overrides equality.
* Nickname default should be consistent with parent class.
* Make unused variable private. Enable pylint to flag future
  usage outside of class.
* Set nickname in the parent class.
* Do not initialize own logger if parent provides one already.
  The parent class properly sets the logger thanks to `self.__class__`
* Install the logger last.
* Remove unused callback argument from __init__; fix rest of code.
Remove contact tests.
Remove unused contact.py.
Merge pull request #652 from Renelvon/connection_refactor2

Drop node/contacts. Fix, refactor and test CryptoPeerConnection and friends.
Drop external requirement: argparse.

* argparse is in Python's Standard Library since Python 2.7.
Merge pull request #657 from Renelvon/drop_argparse

Drop external requirement: argparse.
Merge pull request #634 from benemorius/icanhazipv4

[STANDBY] icanhazip: use ipv4 subdomain to receive only ipv4 addresses
Merge pull request #650 from patcon/560-machine-scope-caching

Switch vagrant-cachier cache scope to :machine
Comment-out old broken feature test
Update requirements to integrate with coveralls