Add hash table implementation.

Add an IMap interface for associative key-value collections. Add an
implementation for a hash table using closed addressing (separate
chaining). Add tests for the map interface and concrete hash table
implementation.

Create IMap interface and tests. Create closed-addressing hash table implementation. Needs tests, refactor and implementation of resize.