added tokens for `done` callback

supports both ordered and unordered using;
```lua
done:wait("token1", "token2", "token3")     -- default = ordered
done:wait_ordered("token1", "token2", "token3")
done:wait_unordered("token1", "token2", "token3")
```` 

as discussed in #142