This does clone but is fairly slow compared to something like:

```js
var options = {};
for (var key in userOptions) options[key] = userOptions[key];
```
To be 100% clear I am worried about how we set .profile on the passed in options (it effects the outside world in potentially bad ways). I am not worried about the case of deep cloning since we don't touch .screen anywhere.