[PLAT-4096] Set the UniqueID on save, and support dummy ChangeManager.
[PLAT-4102] Set the UniqueId if possible to do so on saving.

Also includes a better error case in PortfolioCompilerTraversalCallback.
As I ran into this issue with a custom Source, it's better to identify
the bug directly rather than with just a NullPointerException.