fix bug reduce -> foldLeft in ModelVector

to make it work on empty ModelVector
explain paramter in comment
make update functions recursive on Submodels

also add recursive removeAttributes