(Unordered) queue of items persisted to disk of a given
serde-serializable type.
The on-disk structure is considered an implementation detail and
not a public interface. The data on disk is versioned and an
effort is made to not consume incompatible data schemas across
versions. Items that can't be consumed (e.g. due to incompatible
versions) aren't removed from the queue and might bubble up again.
Example usage:
```rust
# let t = tempfile::tempdir().unwrap();
# let path = t.path().join("foo").to_path_buf();
use diskqueue::Queue;
let q: Queue = Queue::new(path).unwrap();
q.enqueue(123).unwrap();
let v = q.dequeue().unwrap();
assert_eq!(v, Some(123));
```