run_test_suite: Run Python tests with nosetests
api.Device: Query MAC address with ARP packets when it's unknown

The responsibility of deciding whether the MAC address should be queried
or not is down to `Device`, but not the dirty work of actually querying it.
Therefore, this is performed by `network.scan_device()`.

I've made this decision, not only with purposes of separating
responsibilities but also because I envisage `scan_device()` to become more
complex when we want to track a MAC address in case it changes its IP
address.

The IP address I've set in the unit tests is hardcoded because I don't have
enough test infrastructure to tell the tests what devices I have connected
in my network. This will be tackled later.
core/network.py: Implement a Man-in-the-middle class

Which represents an attack over a device in the network. This code works
but needs polishing because there's some duplication.
WIP - core/control.py: Use `network.MITM`

Update the `Control` class so that it uses the recently implemented
`network.MITM`.