StrategyLayer::SetStrategy

Ptr<NamePrefixEntry> is stored in nameprefix_entry.
strategy_extra is lazily created, and its type is recorded so that it can be recreated when a namespace adopts a new strategy_type.