Generalize WeightedNextPiecesDefaults to a cache

Helps with performance by allowing the constructor lookup to be done
once and early. Will be useful when I add an event for structure piece
placement
Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>