Filter a table given a map of the allowed rows based on primary key values.
It uses a depth-first algorithm (although not recursive - it might be refactored
in the future) to define which rows are allowed, as well which rows are necessary
(and hence allowed) because of dependencies with the allowed rows. NOTE: multi-column primary keys are not supported at the moment.
This class is a wrapper for another table with the condition that only a subset
of the original table will be available - the subset is defined by the set of
primary keys that are allowed in the new table.