Schedule an one-shot timer. This is different from `schedule_timer` that this function's handler is `FnOnce`. Parameter
`period` is also not needed here.
# Arguments
* `due`: Due time to execute the task
* `hint`: Behavior hint of `handler`, which impacts how the task will be scheduled
* `handler`: The task to be called back
returns: Result<[`Timer`], [`TimerError`]>
# Examples
```rust
# use std::thread;
# use std::time::Duration;
use native_timer::TimerQueue;
let my_queue = TimerQueue::new();
let mut called = 0;
let timer = my_queue.schedule_oneshot(Duration::from_millis(400), None,
|| called += 1).unwrap();
thread::sleep(Duration::from_secs(1));
drop(timer);
assert_eq!(called, 1);
```