perform eviction after adding new items, not before

This prevents an issue where doing a Put with an existing key when the
cache is at max capacity causes unnecessary eviction(s).