add query transformer interceptor

- user can inject transformer class that can modify query
TODO: unit tests

close #4
add datasource-name to QueryTransformer parameter