feature: add support for JSONC in user theme files and add test coverage for theme loading functionality (resolves #4927)
Resolves #4927.
This PR improves consistency and adherence to the principle of least surprise by giving users' custom theme files the same treatment as opencode.json/opencode.jsonc and permitting them to contain either plain JSON or JSONC with the option of trailing commas. Similarly to how opencode.json is handled, user themes are now parsed as JSONC regardless of the physical file extension.
In addition to improving adherence to the principle of least surprise, this improves UX when working on adjusting one's custom theme files, as it can be very convenient to be able to comment lines in a theme file in in and out while adjusting its aesthetics.
In addition, this PR adds tests for the theme loading functionality, which had no test coverage prior to this PR.