Make MpscLinkedQueue usable in a generic way
Final optimized HashedWheelTimer implementation.

This basically uses a MPSC queue to first store all added timeouts and then add them to the right buckets via the Worker. This ensure we have no races and have no need to do any concurrency in the buckets itself. This greatly simplify things while still be very fast and has very minimal memory usage