'extend' for model extension.

https://gist.github.com/kklingenberg/7336576

extend was added to allow for file transfers that save to the
filesystem. Since there's no clear way to include the save procedure
into an ACID transaction (there's no rollback), the extension fields
are saved after the commit. If they fail, the database part of the
transaction remains finished.