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