timer: added 'timeout' timer

It is used to conviniently check amount of time given function/code takes to execute.
Timer supports elapsed() time and restart(), the latter returns elapsed time and resets timer.