Transform Exception args to strings when exceptions

Import the following change from Cinder to fix a problem with translated
exceptions.

Co-Authored-By: git-harry <git-harry@live.co.uk>

Author: git-harry <git-harry@live.co.uk>
Date:   Thu Apr 17 10:49:49 2014 +0100

    CinderException args to strings when exceptions

    CinderException message and kwargs are converted to strings if the
    argument is itself an exception.

    Exceptions passed as arguments to CinderException happen in many
    areas
    of the code. This causes an error when oslo.messaging tries to
    serialise
    the exception.

    Change-Id: I1399c939bbca47ab8362ac3bbe0e9a349c6d5572
    Closes-Bug: #1301249

Change-Id: If36f1af0b2e9cc7ec263bdacfe5aa4d49c4c9b85