cfreader/[ini, json, yaml, binary, list] with tests!

Issue #784 leaves me wanting to get configfile under test. This PR extracts the file types into their own libraries with test coverage.
That works as I'd expect too. However, you're not doing the same thing. try to return inside the try block and hit an error, and see what happens. :)  If the err.code is anything other than EBADF, then the cache line gets called, exactly the same as before.