Jean Boussier 30f2d69825 Don't call Kernel#require in hot loop
Ref: https://bugs.ruby-lang.org/issues/20641

Even without the reference bug, `require 'date'` isn't cheap.

```ruby

require "benchmark/ips"
require "yaml"
require "date"

100.times do |i|
  $LOAD_PATH.unshift("/tmp/does/not/exist/#{i}")
end
payload = 100.times.map { Date.today }.to_yaml

Benchmark.ips do |x|
  x.report("100 dates") { YAML.unsafe_load(payload) }
end
```

Before:
```
$ ruby /tmp/bench-yaml.rb
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
Warming up --------------------------------------
           100 dates   416.000 i/100ms
Calculating -------------------------------------
           100 dates      4.309k (± 1.2%) i/s -     21.632k in   5.021003s
```

After:
```
$ ruby -Ilib /tmp/bench-yaml.rb
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
Warming up --------------------------------------
           100 dates   601.000 i/100ms
Calculating -------------------------------------
           100 dates      5.993k (± 1.8%) i/s -     30.050k in   5.016079s
```
2024-07-19 20:37:20 +00:00
..
2024-07-11 15:18:40 -04:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-06-20 15:16:57 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-06-23 09:42:25 +09:00
2024-06-04 12:40:08 +09:00