Adds tests for union() and adds merge(), a stricter union() that will
probably be the default merging strategy for the extension.