Support for logging custom json fields

Added support for logging of custom json structures:
    logger.info({"special": "value", "run": 12})
    logger.info("classic message", extra={"special": "value", "run": 12})

Fixed unit test for unknown key
Added caching of parsed format