Timer() avoid leaving a circular reference when canceling a timer
some refactoring and small performance optimization for the depth messages that follow a trade
small performance optimization: detect when depth message at non-empty level had no effect on orderbook (because trade message has done all updates already)