Currently, if a user runs git lfs ls-files with lfs.fetchexclude set to
*, then all files are excluded from the output. This doesn't make much
sense, since the lfs.fetchinclude and lfs.fetchexclude options are
documented to work only on fetches. Let's ensure that we don't load the
fetch filters by default when performing a non-fetch operation so that
git lfs ls-files isn't affected by these exclusions.
The `SetAllEnv` function is one of two functions that allow for mutable
behavior within the `*config.Configuration` type. It is desirable for us to
remove that function, and all of its uses throughout the LFS codebase.
Unfortunately, a lot of `SetAllEnv` uses are coupled to initializing the
`config.Configuration` instance with custom `.gitconfig` data, a-la
`NewFromValues`. This coupling makes it difficult to write an atomic commit
that *only* removes the usage of `SetAllEnv`.
As a compromise, the signature of `NewFromValues` changed from:
```
func NewFromValues(gitconfig map[string]strimg) *Configuration
```
to...
```
type Values struct {
Git, Env map[string]string
}
func NewFrom(v Values) *Configuration
```
To support reading fixed data as a part of the `Env` fetcher, a new Fetcher
type was introduced:
```
type mapFetcher map[string]string
func (m mapFetcher) Get(key string) (val string) { ... }
```
and is used in place of the old `*EnvFetcher` to retrieve data from the
"environment".