node/kbucket: Do not circumvent magic methods.

The comparison test in removeContact always fail if both
x and contact were Contacts, since x.guid is a string, thus
    x.guid != contact
translates to
    str.__ne__(x.guid, contact)
which fails.

Interestingly, the comparison may succeed if written
    contact != x.guid
because it translates to
    Contact.__ne__(contact, x.guid)
which correctly compares contact.guid and x.guid.

This behaviour is counter-intuitive; the best way to fix the bug
is to always delegate the entire comparison to Contact.__ne__.
Remove duplicate test file.
Groom test_network_util.

* Visually separate right from wrong testcases.
* Add provision for running test without nosetest support.
* Remove execute flag.
Do not comment the obvious.
Refactor pyelliptic tests.

* Rewrite tests as unittests.
* Remove execute flag from file.
* Make imports consistent with rest of code.
Rewrite and expand kbucket tests.

* Factor contact creation.
* Drop empty tearDown.
* Never import classes, only modules.
* Test KBucket init.
* Test len.
* Test all cases of getContact
* Test all cases of getContacts.
* Test all cases of addContact.
* Test all cases of removeContact.
* Test keyInRange.
Remove contact in place (without rebuilding list).