query_language: Setup tree-sitter and grammar.js
This revision defines the grammar for the search query language and
prepares swh.search for a smoother development of the grammar.
The parsers generated from the proposed grammar serve two different purposes:
- Translation of search queries into elasticsearch DSL in swh.search (or any
other search backend that we may use in the future)
- Autocompletion of the queries in the swh.web (Archive UI)
tree-sitter has been selected for the task because it has bindings for
python (swh.search) as well as wasm (swh.web).