Rebuild the persistent queue state when starting it by reading the entire transaction log 

Other notable changes also included in this pull request:
 - Renamed QueueEntry for QueueItem and use in the Queue trait API
 - Added QueueStatistics to Queue trait API

What is missing from this pull request? Unit tests. I am working on them but I thought I had enough pending changes for now to submit a pull request...