Add the ability to add filters to queries

Filters are a way to remove or translate the result set of a query after data is retrieved from the database.
Also adds a DSL method to facilitate adding filters