Produce more meaningful exception messages in nested stacks

This produces a nested exception like:
 'ValueError: resources.nested.resources.my_server: it is broken, sorry'

This re-uses the path mechanism that StackValidationFailed exception
uses.

Change-Id: Id5204c15ee96784e04522ab3c5a8e66900f9a1d3
Closes-bug: 1459837
diff --git a/common/test_resources/test_resource.py b/common/test_resources/test_resource.py
index 88f1745..55255a6 100644
--- a/common/test_resources/test_resource.py
+++ b/common/test_resources/test_resource.py
@@ -100,7 +100,7 @@
 
         # emulate failure
         if fail_prop:
-            raise Exception("Test Resource failed %s", self.name)
+            raise ValueError("Test Resource failed %s" % self.name)
 
     def handle_update(self, json_snippet=None, tmpl_diff=None, prop_diff=None):
         value = prop_diff.get(self.VALUE)