layers: Emit safe_*::ptr() members to eliminate some cast noise

These casts were annoying noise, and uncheckable. Move them into the
generator where we know the one type that makes sense.

Drop spurious reinterpret_cast of stage create info to itself -- it's
all raw types once the root pCreateInfo is unwrapped.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
diff --git a/vk_helper.py b/vk_helper.py
index c9ee9cd..a4e7948 100755
--- a/vk_helper.py
+++ b/vk_helper.py
@@ -1602,6 +1602,8 @@
             ss_decls.append("    %s();" % (ss_name))
             ss_decls.append("    ~%s();" % (ss_name))
             ss_decls.append("    void initialize(const %s* pInStruct);" % (s))
+            ss_decls.append("    %s *ptr() { return reinterpret_cast<%s *>(this); }" % (s, s))
+            ss_decls.append("    %s const *ptr() const { return reinterpret_cast<%s const *>(this); }" % (s, s))
             ss_decls.append("};")
             if s in ifdef_dict:
                 ss_decls.append('#endif')