function createMockEditor(initialContent, languageId, visibleRange) {
        // create dummy Document, then Editor tied to it
        var doc = createMockDocument(initialContent, languageId);
        return { doc: doc, editor: createMockEditorForDocument(doc, visibleRange) };
    }
Returns a Document and Editor suitable for use in isolation: the Document
will never be set as the currentDocument or added to the working set and the
Editor does not live inside a full-blown Brackets UI layout. The Editor *will* be
reported as the "active editor" by EditorManager, however.

Must be cleaned up by calling destroyMockEditor(document) later.

@param {string=} initialContent
@param {string=} languageId
@param {{startLine: number, endLine: number}=} visibleRange
@return {!{doc:!Document, editor:!Editor}}