feat(snowflake): add optional 'connect_args' param
This allows for example the specifying of a private key.
refactor(duckdb): use native duckdb parquet reader unless auth required
This does two things: We now support passing in a list of paths / S3 URIs to read parquet files using pyarrow.dataset. We use the native DuckDB parquet reader unless we hit an auth error, at which point we fall back to using pyarrow.dataset.