split project settings into shared and local parts
When working with certain languages, it could be useful to keep the `.kateproject` file tracked by a VCS and share the global settings (just like .kateconfig). However, it is often needed to adapt that file in order to work in a local workspace (hard-coded paths for LSP, build, etc.), but right now you are forced to track the whole configuration or to keep `.kateproject` out from the repository. This patch allows to separate the project settings in two files: the shared one (the good old `.kateproject`), and a local one. When a `.kateproject` file is found, the plugin will look for the local file, and when found, its values will take preference. The file for the local part of the project settings follows the same convention than the project notes file: `.kateproject.local` If the value defined in the local part is an object, it will be merged with the object in `.kateproject`. Otherwise, the local value will override completely the shared value. One use case is to allow the LSP server to be aware of a python module installed only in a virtual environment. Since this changes uses the function to merge json object from the lspclient plugin, that function is moved to the shared folder. Tests in kate/autotest.
Showing with 206 additions and 29 deletions