Add converter to std::chrono::duration

The converter allows you to work with config like this:
```
{
    "time1" : 2,
    "time2" : "3s"
}
```
in following way:
```c++
auto t1 = config.at<std::chrono::seconds>("time1"); // will be 2 seconds
auto t2 = config.at<std::chrono::milliseconds>("time2"); // will be 3000 milliseconds
```

So user can use convenient dimension of time, and developer can easily convert it to dimension he needs.

It can throw either `std::invalid_argument` or `std::out_of_range`, but no other one.
Also maybe it could be useful to distinguish these errors to perform better output.