File size checks fails and I haven't figured out why, but next I'd look into how `posix_fallocate` works on alpine linux.

Log:

```
$ cat /etc/alpine-release 
3.9.2

$ git log --oneline -1
e45b7f20e Merge #15618: refactor: Remove unused function

$ ./src/test/test_bitcoin -t flatfile_tests
Running 4 test cases...
Version using posix_fallocate
test/flatfile_tests.cpp(94): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 0))) == 100 has failed [0 != 100]
test/flatfile_tests.cpp(98): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 99))) == 100 has failed [0 != 100]
Version using posix_fallocate
test/flatfile_tests.cpp(102): error: in "flatfile_tests/flatfile_allocate": check fs::file_size(seq.FileName(FlatFilePos(0, 99))) == 200 has failed [0 != 200]
Version using posix_fallocate
test/flatfile_tests.cpp(116): error: in "flatfile_tests/flatfile_flush": check fs::file_size(seq.FileName(FlatFilePos(0, 1))) == 100 has failed [0 != 100]

*** 4 failures are detected in the test module "Bitcoin Core Test Suite"
```
if (key.length() > 1 && key[1] == '-')
            key.erase(0, 1);
        
        if (InterpretNegatedOption(key, val)) {
            m_override_args[key].clear();
        } else {
            m_override_args[key].push_back(val);
        }
        
        if (!(IsSwitchChar(key[0]) && key.size() == 1)) {
            if (!IsArgKnown(key)) {
                error = strprintf("Invalid parameter %s", key.c_str());
                return false;
            }
        }
    }
    
    auto it = m_override_args.find("-includeconf");
    if (it != m_override_args.end()) {
        if (it->second.size() > 0) {
            for (const auto& ic : it->second) {
                error += "-includeconf cannot be used from commandline; -includeconf=" + ic + "\n";
            }
            return false;
        }
    }
    return true;
}
bool ArgsManager::IsArgKnown(const std::string& key) const