make some Model methods defined by `defineProperty` writable so they can be mocked by test suites in non-integration tests.
- writable added to some model instance defineProperty calls, some properties were left alone because they were static or had unknown function (isShell for example)
- added a model-remove test that currently only tests the writable aspect (there appears to be no direct test of this function, other than from the hooks tests)
Merge branch 'writable-files'