BUG If config key doesn't exist, false config vals aren't set.

Config::merge_array_low_into_high() will ignore false values that
don't exist in the config already. The expectation is that if the
key isn't set, you can still set a false value, just not overwrite
the true value with a false one when merging into an existing.

Added some tests to verify that merging still works as expected.
The problem I see if is it's a false value AND Is numerically indexed (is_int). This will now merge where it didn't before.

e.g. before:
```yaml
# merge
Value:
  - 'bob'
  - 0
Value
  - 'other'
```

would have evaluated to 'other', 'bob'. Now it evaluates to 'other', 'bob', 0.