Implement generic List properties

@jpsim 
They aren't counted twice because the parent-class properties show up as properties of `super` rather than properties of the current object with Swift's reflection API.

I added a class which inherits from SwiftArrayPropertyObject and adds another List  property, and added an assertion that there aren't any duplicate properties.