DartsException class

An exception storing a human-readable error description passed in using fmt:format-style arguments.

This allows easily constructing human-readable exceptions like so:

throw DartsException("Cannot create a '{}' here:\n{}.\n\t{}", type, j.dump(4), error);

where type and error are strings and j is a json object.

Constructors, destructors, conversion operators

template<typename... Args>
DartsException(const char* fmt, const Args&... args)
Variadic template constructor to support fmt::format-style arguments.