[core] create a clean copy of the options object when instantiating

The options object is passed as a reference.

This creates strange results when you have several CodeMirror instances in the same page, with the same options object.

You can check the issue in action: http://jsbin.com/zejipe/5/edit