unknown_error usually gets created when an exception of some type other
than `Error` is thrown. If the current exception is a std::exception
(and it usually is), we can log more information about it - which is
(incredibly!) helpful for figuring out what the heck happened.
Added a new metric for the number of threads that hold memory for each size and improve some existing metrics.
Fix: a failed ASSERT would crash if done early in the program lifetime.
Remove the use of relative paths. A header at foo/bar.h could be included by
files under foo/ with "bar.h", but would be included everywhere else as
"foo/bar.h". Adjust so that every include references such a header with the
latter form.
Signed-off-by: Robert Escriva <rescriva@dropbox.com>