move SingletonMeta to base
introduce strategies for hashmaps

so far only int and symbol strategies are implemented, but it's easy to
add more. the object strategy is the same old really inefficient
implementation as before