faster version of assoc

In [1]: from toolz import assoc

In [2]: data = dict(zip(range(10), range(10)))

In [3]: data
Out[3]: {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}

In [4]: timeit assoc(data, 6, 6)
100000 loops, best of 3: 2.49 us per loop

In [5]: def assoc2(d, key, value):
   ...:     d2 = d.copy()
   ...:     d[key] = value
   ...:     return d
   ...:

In [6]: timeit assoc2(data, 6, 6)
1000000 loops, best of 3: 557 ns per loop