Public function `map`.

Maps WebPageTest result data to other formats, returns an ES6 promise.

@option results    {string}  Read WebPageTest results from file.
@option mapper     {string}  Mapper to use, defaults to `html-comparison`.
@option silent     {boolean} Disable logging, overrides `syslog` and `log`.
@option syslog     {string}  Send logs to syslog, overrides `log`.
@option log        {object}  Logging implementation, needs `log.info()`,
`log.warn()` and `log.error()`.
@option config     {string}  Load options from JSON config file.
function map (options, results) {
    var promise, resolve, reject;

    promise = new Promise(function (r1, r2) { resolve = r1; reject = r2; } );

    try {
        // Song and dance to ensure that map options match fetch options.
        results = results || get.results(options);
        results.options.log = get.log(options);
        results.options.mapper = get.mapper(options);
        options = results.options;

        resolve(options.mapper.map(options, results));
    } catch (error) {
        reject(error);
    }

    return promise;
}