Implement generic List properties

@jpsim 
That is not what Swift arrays do, and it makes the API pretty unpleasant.