Make TypeNamespace::Add take a unique_ptr

After a compiler update, our static analyzer started comaplining about
20(ish) potential leaks. It seems that `Add()` only ever takes ownership
of pointers, so it makes sense for it to take a `unique_ptr<const T>`
instead of a raw `const T*`. This also ensures that this object is freed
appropriately if we had trouble inserting the type.

Static analyzer messages omitted for brevity.

Bug: None
Test: TreeHugger; ran static analyzer

Change-Id: I212c2510708675942302a46a99038851a56aa85d
4 files changed