Implement generic List properties

@jpsim 
This should be `sum<U: Summable>(property: String) -> U`, where `Summable` is similar to `Sortable`.