Hashtable

Duplicate inserts (a second or third insert with the same key) will fail here.  The desired behavior would be to have the value stored for a given key be updated, but that won't happen here.  Instead, later additions will be masked by earlier because the first value added for a given key will always be found first.

Try adding this test to see the failure in action:

```python
def test_duplicate_keys():
    hash_table = HashTable(16)
    hash_table.set('foo', 1)
    hash_table.set('foo', 2)
    assert hash_table.get('foo') == 2
```