Properly use parseModel(s) and allow extension

Closes #1246, closes #1272.

This pull request changes `.model` and `.models` to use `parseModel(s)` while staying backwards compatible with previous versions. Adds undocumented additional parameters to `.model(data, oldModel, xhr)` and `.models(data, oldList, xhr)` to be able to pass the xhr (and makes `.model` signature consistent with `.models`).
Test with one more level of extension.