Improve performance of `merge_with` as discussed in #132

See benchmark discussion and alternative implementations in #132.  Thanks to @microamp for starting the discussion and providing base benchmarks.

Also note the following benchmarks, which are why I changed `dict()` to `{}`:
```python
In [1]: %timeit {}
10000000 loops, best of 3: 70.8 ns per loop

In [2]: %timeit dict()
1000000 loops, best of 3: 396 ns per loop
```