we introduce NEOVIDE_BUILD_VERSION in build.rs from `git describe` so tagged builds keep the
package version and non-tagged builds report `nightly-<count>+g<sha>` with `-dirty`
preserved when applicable.
we kinda of follow the neovim pattern for nightly versions since the target users are used to it.
we also add cargo rerun tracking for git metadata and tracked files, and use the generated version
for the CLI `--version` output, startup version logging and `g:neovide_version`
consecutively.
note: bundles will not be affected since they have its own limited versioning scheme.
* Added procedural macro crate
* Initial derive macro implementation
* Compiles for cursor settings
* Derive macro working correctly
* Derive macro working for all settings structs
* Cleanup
* Moved the binary back to the project root
* remove unused utils file
Co-authored-by: Tim Harding <Tim@TimHarding.co>