feat(merge): add accumulator function to handle non matched elements

BREAKING CHANGE

The merge function now takes an options object as the second parameter
instead of the optional functions. Review the README for more detail.