ddctui 1.0.0

Terminal UI for controlling DDC/CI monitor properties
# Initial prompt

I want to write a terminal UI for controlling DDC/CI properties of my monitors, like brightness inputs, etc. in Rust.
The terminal UI should be inspired by bluetui (https://github.com/pythops/bluetui) which is also written in rust.

It should not depend on ddcutil command-line tool, only its library libddcutil. I haven't found decent DDC rust lib, so make your own bindings.

The main function should work like this:
1. Parse command-line arguments with clap
2. Get the monitor list, similar to command `ddcutil detect`
3. Gather DDC capabilities using either:
    - If cache file is available in ~/.config/ddctui/capabilities.json, read file and get the capabilities of each connected monitor
    - If the monitor is not present in the cache file, query its DDC capabilities using something similar to command `ddcutil capabilities`
4. Load the terminal UI, listing the different capabilities of each monitor, and provide controls to edit the different values. Users must be able to favorite some capabilities (favorite storage should be in ~/.config/ddctui/favorites.json), and favorited capabilities should always appear on top.

Please walk me through the process of building this project, before doing any action.



# Fixes

- The displayed values for capabilities are not correct. For example InputSource displays '3855' instead of 'DisplayPort-1'
- when navigating enum values for a capability, up and down arrows are inverted
- I would prefer moving between left and right pane using the left and right arrows (keep the tab behaviour)
- pressing r doesn't refresh the displayed values
- fetching the capabilities values takes a long time. Modify the UI initialisation so it's displayed as soon as possible, and populate the capabilities values when they are received
- capabilities cache don't make a significative difference, remove it