security: Introduce unsetKeyLocator method into SignatureInfo and Signature

Some specific signature types also provide an advisory (non-virtual)
override for unsetKeyLocator that disables reset and throws an
Exception.  As before, if an application really wants, it still can
unset the KeyLocator by setting a new SignatureInfo without the
KeyLocator.

Change-Id: Ibefd5f9ffbcb91f8a83e76db8704cba1b984f914
Refs: #1750
diff --git a/src/signature-info.cpp b/src/signature-info.cpp
index 2543dd2..20e013f 100644
--- a/src/signature-info.cpp
+++ b/src/signature-info.cpp
@@ -63,6 +63,14 @@
   m_hasKeyLocator = true;
 }
 
+void
+SignatureInfo::unsetKeyLocator()
+{
+  m_wire.reset();
+  m_keyLocator = KeyLocator();
+  m_hasKeyLocator = false;
+}
+
 const KeyLocator&
 SignatureInfo::getKeyLocator() const
 {