frontend: Add support for nested patterns when listing repos
Created by: keegancsmith
For hierarchical search we can no longer rely on just a list of include and exclude patterns, but instead have logical operators between the repo expressions. This commit introduces a basic query expression which is And, Or, Not and atoms (interface{}). It is up to the query logic itself to interpret what to do with the atoms. In the case of repo listing, we expect strings and use the same pattern logic for names as IncludePatterns supports.