feat: Introduce Flake for development and builds
This PR introduces a Nix flake, allowing for InfiniSim to be built as a Flake, including a FHS development environment.
We also introduce flake-compat, allowing for non-Flake Nix mahcines to use the project as-is, both for building (default.nix), and development (shell.nix).
Additionally, we introduce .envrc, meaning that with direnv, the Nix Flake is activated automatically.
Marked as a draft until we bump the InfiniTime submodule to v1.14.1.
This will allow the new Python lv_img_conv executable to be found.
Without that, this Flake cannot build successfully.
See: #149.
Currently blocked by https://github.com/InfiniTimeOrg/InfiniTime/pull/2121.