CB-4748: Fail quickly if dir passed to cordova create is not empty.

Some upstream tools (e.g. mca) need to pass extra configuration to
cordova create. In order to avoid pre-creating .cordova/config.json file
for this, an extra parameter is added to cordova.create(), it should be
an object with the same structure as config.json.

If id or name are given in the extra config, they will be used only if
the value given as the function parameter is falsy:
id = id || cfg.id || DEFAULT_ID
CB-5125: replace child process exec with spawn
CB-5125 add tests for chil process spawn