Results 11 issues of Huachao Huang

[Rendered version](https://github.com/huachaohuang/engula/blob/design/docs/design.md)

``` running 1 test Process 75752 stopped * thread #2, name = 'tree::pagetable::tests::loom_test', stop reason = EXC_BAD_ACCESS (code=2, address=0x1011ea6b8) frame #0: 0x00000001004ddee7 photondb_engine-afcc1143f8647152`__rust_probestack + 23 photondb_engine-afcc1143f8647152`__rust_probestack: -> 0x1004ddee7 : testq...

Seems there are some limitations in the Miri checker, will look into this later. https://github.com/rust-lang/miri/issues/1618

Check this parameter: https://docs.rs/io-uring/latest/io_uring/struct.Builder.html#method.setup_attach_wq

help wanted

I think the sqlite varint encoding is better than the protobuf one. We can introduce it for the page format in the future. https://github.com/mohae/sqlite4-varint-bench

I prefer fewer nested levels and the `page_file` module should be independent of the `page_store` module. We can promote the `page_file` module to `src/`.

We have an iterator for table pages now: https://github.com/photondb/photondb/blob/f35f533a8a928439f79ee336dfd9f04ccfc0633c/src/raw/table.rs#L139 It will be nice to also have an iterator over individual table entries. For example, we can add an `iter()` method...

The previous version (0.0.1) enables the miri test, which helps to uncover some undefined behaviors. We can consider re-adding the miri test.