Flyweight improvements to various classes

The copy constructor is no longer a requirement for Flyweight objects.
Also, minor improvement to < and == operators.

Change-Id: I7bdbea6eb6ab253d3a895da93a625dadc0893533
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/isolator/hei_isolator.cpp b/src/isolator/hei_isolator.cpp
index db5668e..e4266b0 100644
--- a/src/isolator/hei_isolator.cpp
+++ b/src/isolator/hei_isolator.cpp
@@ -37,15 +37,15 @@
 
     // Remove all of the IsolationNode objects stored in the flyweights. This
     // must be done before removing the HardwareRegister objects
-    Flyweight<IsolationNode>::getSingleton().clear();
+    Flyweight<const IsolationNode>::getSingleton().clear();
 
     // Must flush the hardware register cache before deleting any
     // HardwareRegister objects.
     HardwareRegister::flushAll();
 
     // Remove all of the HardwareRegister objects stored in the flyweights.
-    Flyweight<ScomRegister>::getSingleton().clear();
-    Flyweight<IdScomRegister>::getSingleton().clear();
+    Flyweight<const ScomRegister>::getSingleton().clear();
+    Flyweight<const IdScomRegister>::getSingleton().clear();
 }
 
 void Isolator::isolate(const std::vector<Chip>& i_chipList,