function putVersionsWithAclToAws(s3, key, data, acps, cb) {
    if (data.length !== acps.length) {
        throw new Error('length of data and acp arrays must be the same');
    }
    enableVersioning(s3, bucket, () => {
        async.timesLimit(data.length, 1, (i, next) => {
            putObjectAndAcl(s3, key, data[i], acps[i], next);
        }, (err, results) => {
            assert.strictEqual(err, null, 'Expected success ' +
                `putting versions with acl, got error ${err}`);
            cb(null, results);
        });
    });
}
putVersionsWithAclToAws - enable versioning and put multiple versions
followed by putting object acl
@param {AWS.S3} s3 - aws node sdk s3 instance
@param {string} key - string
@param {(string[]|Buffer[])} data - array of data to put as objects
@param {_AccessControlPolicy[]} acps - array of _AccessControlPolicy instance
@param {function} cb - callback which expects err and array of version ids
@return {undefined} - and call cb