Add GetProperty method to simplify item property lookups
Use non-throwing properties instead of fields to remove null checks
Generalize property memoization using Lazy<T>
Rewrite property string generation for item info popup

This fixes a display issue that was introduced when the PoEItem properties
being used were changed to never return null.