Moved initialization code into configure hook

This is to allow the drivers to already communicate with the device
in the configure hook.

Cleaned-up doubled error checks in the process.
Reintroduced check to avoid open fd and raw port at the same time
Moved initialization code into configure hook #3

Conflicts:
	tasks/Task.cpp

This is to allow the drivers to already communicate with the device
in the configure hook.
never wait more than 10ms between two reads in the port-based com method

We're still using a busy-wait read loop when communicating through
ports. The current method to determine the wait time was to use
1/10th of the total timeout when the timeout is greater than 10ms,
and simply use the total timeout if lower than 10ms.

However, this leads to really big sleep times if the requested timeout
is high (e.g. 1s for 10s timeout), which causes the system to drop
data unless the input buffer sizes are insanely huge.

Use 10ms as a "middle-ground" between CPU load (while busy-waiting) and
reading the input port "often enough". This is truly a workaround, the
proper fix would be to (finally !) be port-triggered.