Determine which adapter should be used for path. Today we only support
Lance; the function exists in match shape so a Parquet (or other) arm can
be added without touching call sites.
Open a dataset at path, optionally checking out a specific Lance
branch/version/tag. Returns an error if the dataset is not Lance and any
LanceArgs field is set.