Store the arrays of properties as &'static [T] rather than [T, ..N].

This means the .as_slice() call (which is problematic when storing the array
in a static struct) is no longer necessary.
Introduce a NativeProperties struct to store the properties.

This will simplify adding more kinds of properties, such as static attributes.
Pass the NativeProperties struct to CreateInterfaceObjects2.

This will simplify adding more kinds of properties, such as static attributes.