network.MITM: Catch any errors raised by scapy.send()

This is necessary because there seems to be a problem when we try to use
scapy in a multithreaded environment, presumably due to resource locks.

A much neater fix to this would be to synchronise the two threads created
by an attack so that they never execute scapy.send() at the same time. A
problem we'd have by trying to tackle the issue this way is that when the
application has many attacks going on, we'd need to synchronise all of
them.
api.stop_control: Compare device with control's device

This fixes `stop_control()`, which was trying to compare a `Control` object
with a `Device` and therefore, a type comparison error was being launched.

The device which the control is performed over needs to be retrieved from
the outside, it's been made public, and renamed in order to have some
naming consistency.
Control: Implement __eq__ method

So that the comparison between control objects is not so cumbersome by
accessing individually to the device's IP and MAC address.
tests/test_device.py: Add test for devices comparison

Feature that was already introduced in a previous commit
tests/test_control.py: Add unit test for starting and stopping a control

Although this test doesn't guarantee that the device is properly
controlled, at least it exercises the code and proves that it doesn't
break when these methods are used.

Most of the tests that will use this feature will have the same problem.
extra/pylint.conf: Disable W0703

Warning message W0703: Catching too general exception Exception