py: Add casting to viper; add native mem stores to viper.

Viper can now do the following:

def store(p:ptr8, c:int):
    p[0] = c

This does a store of c to the memory pointed to by p using a machine
instructions inline in the code.
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index 070e673..fda140f 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -77,6 +77,9 @@
 Q(native)
 Q(viper)
 Q(uint)
+Q(ptr)
+Q(ptr8)
+Q(ptr16)
 #endif
 
 #if MICROPY_EMIT_INLINE_THUMB