Reduce lookups

* 2f717f2 provides a hook to allow an application to reduce it's lookups by examining the context. This won't do anything to reduce the lookups in a vanilla spree store.
* ed98621 will avoid lookups unless the underlying data has changed. This will reduce some lookups in a vanilla spree store but since Spree copies addresses to new objects so liberally it won't help much.

The best solution would be some sort of lookup cache. This would prevent lookups as Spree copies data around to new objects. But that will come as a later commit. The hook will be good enough for our project.