Implement umap_vec_mpz

umap stands for unordered_map.
Better hash
Implement printing of umap_vec_mpz
Switch to unordered_map
A little faster hash
Simpler and faster hash function
Even better hash function
Add commented out debugging prints into rings.cpp

This is useful for debugging the hash function
Merge pull request #14 from certik/dict

Use unordered_map for polynomial multiplication