static_hash_maps: new code generation package to build static hash maps

A static hash map means here a hash maps completely known before compile
time. It uses GNAT.Perfect_Hash_Generator to turn string keys into indexes
for an array of elements.