Specifically this commit makes the following changes:
- use fmtlib to avoid temporary string buffers and snprintf()
- use fmtlib for more specific error messages
- use Tokenizer class instead of strtok() for thread safe and simpler parsing
- use std::string() and '==' for string comparisons
- use utils::*numeric() instead of atoi()/atof() for parsing values