[Fix #16] Cache cabal configurations

My own take at #16 and #17.  Uses a hash table, and caches all configurations of all projects.