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_isolation_node.hpp b/src/isolator/hei_isolation_node.hpp
index 782ac7f..4cf44dd 100644
--- a/src/isolator/hei_isolation_node.hpp
+++ b/src/isolator/hei_isolation_node.hpp
@@ -48,24 +48,10 @@
     ~IsolationNode() = default;
 
   private:
-    // This is needed to allow the flyweights to use the copy constructor, but
-    // not allow it to be used in general.
-    friend class Flyweight<IsolationNode>;
+    /** @brief Copy constructor. */
+    IsolationNode(const IsolationNode&) = delete;
 
-    /**
-     * @brief Copy constructor.
-     *
-     * Needed by Flyweight class, but should not be allowed in general.
-     */
-    IsolationNode(const IsolationNode&) = default;
-
-    /**
-     * @brief Explicitly disables assignment operator.
-     *
-     * This is redundant since the compilier will implicitly delete this because
-     * of the constant instance variables, but helps communicate it is not
-     * allowed.
-     */
+    /** @brief Assignment operator. */
     IsolationNode& operator=(const IsolationNode&) = delete;
 
   private: // Instance variables