With this release, `file::Store` is easier to use due to thread-safe handling of an internal and shared
packed-buffer instance. An API for passing it as parameter like before is still present, allowing to use
a 'frozen' version of the packed buffer for any amount of operations.

### New Features

 - Add `file::Store::iter_(prefixed_)packed()`.
   
   These methods allow using an own packed buffer, usually obtained through
   `cached_packed_buffer()`.
 - add `file::Store::cached_packed_buffer()` for packed refs snapshots
 - add file::Store::try_find_packed(…, packed_buffer)
   That way, abstractions can still be built that have other ways of
   managing the packed-refs buffer, allowing it to stay more persistent.

### Changed (BREAKING)

 - rename `file::Store::packed_buffer()` to `…::open_packed_buffer()`
   This makes much clearer what it actually does, as previously it might
   have been a stored packed buffer as well.
 - file::Store::from(PathBuf) removed
   At this low level, it's important to be clear about RefLogs and rather
   force the caller to specify the ref-log mode. Technically it depends
   on a few factors, `git-repository` deals with them, but certainly
   shouldn't default to anything without being clear.
 - Reference log line access
   `Reference::log_iter(…)` now is a platform instead of a forward iterator,
   which requires a call to `.all()` to return the forward iterator like
   previously.
   
   `Reference::log_iter_rev(…)` was removed in favor of
   `Reference::log_iter(…).rev()`.
 - file::Store::iter() is now a platform, with `.all()` and `.prefixed(…)` respectively
   This way, it's possible to keep shared ownership of the packed buffer
   while allowing the exact same iterator machinery to work as before.
 - file::ReferenceExt::follow(…) now without packed refs parameter
 - `file::ReferenceExt::peel_to_id_in_place(…)` now without packed-refs buffer
   It is instead read from the internally synchronized buffer, shared
   across all instances.
 - file::Store::(try_)find(…, packed) was removed
   The packed buffer is now handled internally while loading it on demand.
   When compiled with `git-features/parallel` the `file::Store` remains
   send and sync.
   
   The packed refs buffer is shared across clones and it's recommended
   to clone one `file::Store` instance per thread, each of which can
   use its own namespace.
 - move `git_ref::file::WriteRefLog` to `git_ref::store::WriteRefLog`

### other (BREAKING)

 - Reference::logs() -> Reference::log_iter()
   The latter now returns a standard Platform to iterate over all
   reflog entries from oldest to newest or vice versa.

### refactor (BREAKING)

 - `file::Store::base` is now `file::Store::base()` and read-only
   That way, file databases can't be repositioned anymore, it's recommended
   to recreate it if that's desired.

### Commit Statistics

 - 34 commits contributed to the release over the course of 11 calendar days.
 - 13 commits where understood as [conventional](https://www.conventionalcommits.org).
 - 2 unique issues were worked on: #259, #263

### Thanks Clippy

[Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. 

### Commit Details

 * **#259**
    - btree/hashmap free lookup of packs in store, keeping things more bundled (a88981b)
 * **#263**
    - Add `file::Store::iter_(prefixed_)packed()` (6a17416)
    - add `file::Store::cached_packed_buffer()` for packed refs snapshots (9eb3a31)
    - rename `file::Store::packed_buffer()` to `…::open_packed_buffer()` (b431fb0)
    - add file::Store::try_find_packed(…, packed_buffer) (b030884)
    - file::Store::from(PathBuf) removed (80f3d50)
    - Put general Store on hold - ref-table is needed to know how to go about it (bfa417b)
    - Don't even think about setting up test duplication for the general store (72a6464)
    - Reference::logs() -> Reference::log_iter() (951c050)
    - Reference log line access (bfb32ae)
    - Add platform for log iteration to hold byte buffers (1cd2362)
    - Assure the packed buffer is reloaded after a modification (f5570ff)
    - fmt (fbeddeb)
    - file::Store::iter() is now a platform, with `.all()` and `.prefixed(…)` respectively (5d498a3)
    - refactor (5fc3817)
    - refactor packed buffer sharing to allow for sharing snapshots (00c2545)
    - Let file transactions reuse the cached packed buffer (a9096b9)
    - file::ReferenceExt::follow(…) now without packed refs parameter (4641499)
    - `file::ReferenceExt::peel_to_id_in_place(…)` now without packed-refs buffer (55940eb)
    - file::Store::(try_)find(…, packed) was removed (15d429b)
    - Load packed buffer with interior mutability (ae2eef1)
    - Make it possible to return read guards with packed buffers (f5c3c8f)
    - `file::Store::base` is now `file::Store::base()` and read-only (0e18753)
    - refactor, realize why having a packed-buffer with the loose db is valuable (a76f041)
    - A mad attempt to use thread-local everywhere and avoid Sync… (0af5077)
    - Try implementing find_reference to realize that this extra abstraction is overkill (82ea1b8)
    - Look into iteration, but realize that it's harder than finding refs (fc753a8)
    - Sketch of State is seen in store handle and store itself (f87f852)
    - sketch a store handle (fc6480b)
    - move `git_ref::file::WriteRefLog` to `git_ref::store::WriteRefLog` (9524732)
 * **Uncategorized**
    - Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (acd3737)
    - Adjust changelogs prior to release (ec38950)
    - thanks clippy (a74f27c)
    - Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects (ee737cd)