Minor refactoring of ThrottlingQueue. We now maintain our own internal size of the queue instead of having to call queue.size() all of the time. This might be completely unnecesary. Expanded test cases for ThrottlingQueue. TransactionQueueManager.runImpl() now checks whether the restart/blocked queues are empty before it attempts to process them. I figured an isEmpty() call is cheaper than a poll()