Add preventDestroy option to region.empty()

This is more of a change of behaviour, not just a fix for #1920 or #1911 
This allows calling region.empty() without destroying the view. The regions node is emptied, and events are unbound, but the view is left in tact.

When changing views, we use region.empty() .. forwarding the preventDestroy option if it was passed. But region.empty() will still unbind the events for us.

This may not be an approach you want to take, feel free to disregard if so. But it was easier to code than explain :)
these should be:

```js
this.whateverSpy = this.sinon.spy();
```