The original implementation made every single default flag go through to every single command (because of version drift between dbt and us, we'll never know the exact set of valid flags for a given command). However, there are some common flags that we can be a bit smarter about. In particular, models, select, and exclude are well-defined and unlikely to change. With this change, if any of these are present in the default flag set, but NOT present in the function signature (e.g. run-operation does not take any of these arguments), they will not be forwarded.
I also updated the tests to use the new direct invocation stuff.