openssd: introduce delays to an IO

We implement a method for delaying IOs. The waiting time can vary
by either being a read, write or an erase.

If the system have taken longer to service the IO than specified
by the specified time, we simply skip the waiting time.

The approach busy wait on the CPU, as a reschedule of the process
is too heavy.

However, if waiting time is above 500-1000us, we should consider
a hybrid approach that allow rescheduling.