Finished the server-side searching for catalgoueTree

1. the query is done on server-side
2. Not all variables exist in the tree due to using the lazy-loading strategy. If the searched variables (observableFeatures) do not exist in the tree, those variables and their parent protocols would be appended to the tree.