Refactored EventLoop::timeout_ms to use Duration instead of u64

Addresses #32. Removed `_ms` from the method name since the Duration class can represent a range of units.