Added Logger::exception() to simplify logging exceptions

Perhaps there's a fundamental reason why, and I'm open to the reasons, but I'm confused by the lack of a simple way to log exceptions in a centralised way.

Currently, I'm forced to extend the Logger just to add this functionality so I'd be keen to understand why it is missing from the core and, if possible, have it merged in.