Fix fake_init_exception() to better handle Neutron exceptions

Neutron often declares exceptions by overriding the message attribute
and possibly adding additional information later, like a 'reason' for
the failure, rather than passing the code and message around as
arguments.  We should handle this appropriately and display the correct
message, instead of failing with "TypeError: fake_init_exception()
takes exactly 3 arguments (1 given)"

Change-Id: Ib838704cb9ca968ddfc6e3bfed3af7d0ea08f384
Closes-Bug: #1315035
Merge "Fix fake_init_exception() to better handle Neutron exceptions"