Use either opts.events or a no-op for logging (§4)

Fixes #23
diff --git a/index.js b/index.js
index 2ddec33..bdff9bf 100644
--- a/index.js
+++ b/index.js
@@ -29,32 +29,11 @@
 var validateIdentifier = require('valid-identifier');
 
 var fetch = require('cordova-fetch');
-var events = require('cordova-common').events;
 var CordovaError = require('cordova-common').CordovaError;
 var ConfigParser = require('cordova-common').ConfigParser;
-var CordovaLogger = require('cordova-common').CordovaLogger.get();
 
 const DEFAULT_VERSION = '1.0.0';
 
-/**
- * Sets up to forward events to another instance, or log console.
- * This will make the create internal events visible outside
- * @param  {EventEmitter} externalEventEmitter An EventEmitter instance that will be used for
- *   logging purposes. If no EventEmitter provided, all events will be logged to console
- * @return {EventEmitter}
- */
-function setupEvents (externalEventEmitter) {
-    if (externalEventEmitter) {
-        // This will make the platform internal events visible outside
-        events.forwardEventsTo(externalEventEmitter);
-    // There is no logger if external emitter is not present,
-    // so attach a console logger
-    } else {
-        CordovaLogger.subscribe(events);
-    }
-    return events;
-}
-
 module.exports = cordovaCreateLegacyAdapter;
 
 /**
@@ -66,7 +45,7 @@
 
     if (id) opts.id = id;
     if (name) opts.name = name;
-    if (extEvents) opts.extEvents = extEvents;
+    if (extEvents) opts.events = extEvents;
 
     return cordovaCreate(dir, opts);
 }
@@ -79,6 +58,7 @@
  * @returns {Promise}           Resolves when project creation has finished.
  */
 function cordovaCreate (dest, opts = {}) {
+    let emit;
     // TODO this is to avoid having a huge diff. Remove later.
     let dir = dest;
 
@@ -94,8 +74,8 @@
         // Shallow copy opts
         opts = Object.assign({}, opts);
 
-        events = setupEvents(opts.extEvents);
-        events.emit('verbose', 'Using detached cordova-create');
+        emit = getEventEmitter(opts);
+        emit('verbose', 'Using detached cordova-create');
 
         // Make absolute.
         dir = path.resolve(dir);
@@ -125,7 +105,7 @@
     })
         .then(function () {
             // Finally, Ready to start!
-            events.emit('log', 'Creating a new cordova project.');
+            emit('log', 'Creating a new cordova project.');
 
             // If symlink, don't fetch
             if (opts.link) {
@@ -135,7 +115,7 @@
             // Use cordova-fetch to obtain npm or git templates
             if (opts.template && isRemoteUri(opts.url)) {
                 var target = opts.url;
-                events.emit('verbose', 'Using cordova-fetch for ' + target);
+                emit('verbose', 'Using cordova-fetch for ' + target);
                 return fetch(target, getSelfDestructingTempDir(), {});
             } else {
                 // If assets are not online, resolve as a relative path on local computer
@@ -154,7 +134,7 @@
                     isSubDir = true;
                 }
             } catch (e) {
-                events.emit('verbose', 'index.js does not specify valid sub-directory: ' + input_directory);
+                emit('verbose', 'index.js does not specify valid sub-directory: ' + input_directory);
                 isSubDir = false;
             }
 
@@ -171,13 +151,13 @@
             try {
                 // Copy files from template to project
                 if (opts.template) {
-                    events.emit('verbose', 'Copying assets.');
+                    emit('verbose', 'Copying assets.');
                     copyTemplateFiles(import_from_path, dir, isSubDir);
                 }
 
                 // If --link, link merges, hooks, www, and config.xml (and/or copy to root)
                 if (opts.link) {
-                    events.emit('verbose', 'Symlinking assets.');
+                    emit('verbose', 'Symlinking assets.');
                     linkFromTemplate(import_from_path, dir);
                 }
 
@@ -237,6 +217,12 @@
         });
 }
 
+function getEventEmitter ({ events }) {
+    return events
+        ? (...args) => events.emit(...args)
+        : () => {};
+}
+
 /**
  * Recursively copies folder to destination if folder is not found in destination (including symlinks).
  * @param  {string} src for copying
diff --git a/spec/helpers.js b/spec/helpers.js
index bc48248..399f292 100644
--- a/spec/helpers.js
+++ b/spec/helpers.js
@@ -23,10 +23,6 @@
 
 const rewire = require('rewire');
 
-// Disable regular console output during tests
-const CordovaLogger = require('cordova-common').CordovaLogger;
-CordovaLogger.get().setLevel(CordovaLogger.ERROR);
-
 // Temporary directory to use for all tests
 const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cordova-create-tests-'));