FaultWrapper error mapping supports parent classes

Now the FaultWrapper middleware maps exceptions to webob ones using
a recursive method: if the exception itself is not in the error_map
dictionary, the method searches the first parent exception that has a
match in the same dictionary.
Without this change "any exception that subclasses an exception mapped
in FaultWrapper.error_map will raise an http 500 error instead of the
mapped http error. FaultWrapper should also map against all parent
types of an exception."
Two unit test were added: one to reproduce the bug and another to test
the fix when remote exceptions are handled.

Change-Id: I387e0acf35a4d6361494117218d5129f00d77eb7
Closes-Bug: #1232885
Merge "FaultWrapper error mapping supports parent classes"