query engine
the query engine should take a Query created by the parser and a MdFileMap to create a list of entries.
i'm thinking of having an DataColumn struct, which carries some information about the value, as well as an vec of the values. the query engine then returns a vec of those.
it creates the data column from the select_columns of the Query, it filters the MdFileMap using the given where_clauses, it then collects the needed values for the data columns.