This patch significantly improves `v.find` performance by using
ristretto cache.
Ristretto was chosen because it is a very performant, thread-safe
cache that does not suffer form congestion or long GC pauses.
```
% go test -bench=. .
goos: darwin
goarch: amd64
pkg: github.com/spf13/viper
BenchmarkGetBool-8 5431267 211 ns/op
BenchmarkFind/cache=false-8 289495 4060 ns/op
BenchmarkFind/cache=true-8 6980976 171 ns/op
BenchmarkGet-8 6332091 193 ns/op
BenchmarkGetBoolFromMap-8 235071828 5.09 ns/op
PASS
```
This commit was created by manually removing github.com/ugorji/go/codec from
the go.mod (which now does not exist - see https://github.com/ugorji/go/issues/299)
and running `go mod tidy`.
Closes#658
In Go 1.11.4 a bug was fixed related to checksum calculation.
As a result, some packages might end up with a different checksum
from this version. The solution is upgrading, cleaning the mod cache
and recalculating the go.sum file.
See https://github.com/golang/go/issues/27093