Updated using features in TypeScript v0.9

Previously the module name couldn't match the global function name, so we had to declare module 'CM' and function CodeMirror.

Now that TS can handle the naming clash correctly, we will go to the naming convention from CodeMirror docs.

Additionally, that allows using constructor for CodeMirror.Doc. Previously because of naming CM.Doc that wouldn't work.

Note that CodeMirror itself is not declared as a class, even though their actual implementation does allow 'newing' it internally. However, that is not advertised in the docs, so we assume it is a quirk for some edge case compatibility and leaving it out of the API declarations here.