some improvements and new features 

I did some improvements and new features on the tail:
1. add a abstract SequenceQueue which control the element of queue was produce one by one: next will be process only if previous done. This also fix a bug of edge case.
2. add feature like tail -F in linux/unix, which can handle relink, rotate, rename.
3. can tail a file which not exists at first.
4. reserve file descriptor to avoid reopen file repeatedly
5. unwatch can return the current position. it's very useful for some case some application want to resume from last position after transient shutdown