first implementation of hash table

This hash table is used to cache UIDs and GIDs and reduce number of
expensive calls of getpwnam() and getgrnam().
If two keys have the same value of hash function the only first key will
be added to hash table. This will be fixed in the future.

This patch is related to issue #2 at GitHub.