Complete rearchitecture (all tests still work).
There are now separate functions to parse a key and a value.
The parser state can now be consistent across multiple parse function calls. This implies that the parser state structure (ecl_parser_t) is now part of the public interface so that it can be stack-allocated.
The standalone string parse function was removed because it is now integrated with the value parse function.
The standalone int parse function was removed because ecl now produces null-terminated strings, which work well with strtol and alike.
Currently, enclosed string-style keys are not supported anymore.