ReplacementDict: add constructor from DB data

This new constructor allows a ReplacementDict to be constructed by passing in rows from the database. This allows places outside of the Unit classes to gain access to the full suite of standard unit variables without having to fully reimplement the logic.

Eventually the three Unit classes can probably be migrated to use this constructor, ensuring that there's only one canonical way to produce this style of ReplacementDict.

refs #6451