Logging module from SMARTpy
More general logger.

Rebuilt part of the logging mechanism to support only one value logging facility. This way, for instance, if we wanted to have different tables for test and valid, we'd only use two logger.

This way, the logger is more general and can be used for multiple purposes, such as ML and optim tasks.