Implement generic List properties

@jpsim 
Because `property` is a String, Realm doesn't know the type. What we should do is `assert()` that the type is correct and print a descriptive error message on failure.