use SwapPayload() to retain comments

All tests pass, but we might be missing coverage.

issue #47
diff --git a/include/json/value.h b/include/json/value.h
index 3473c7e..93112d1 100644
--- a/include/json/value.h
+++ b/include/json/value.h
@@ -235,23 +235,26 @@
   Value(const CppTL::ConstString& value);
 #endif
   Value(bool value);
+  /// Deep copy.
   Value(const Value& other);
   ~Value();
 
+  // Deep copy, then swap(other).
   Value& operator=(Value other);
-  /// Swap values.
+  /// Swap everything.
   void swap(Value& other);
+  /// Swap values but leave comments and source offsets in place.
+  void swapPayload(Value& other);
 
   ValueType type() const;
 
+  /// Compare payload only, not comments etc.
   bool operator<(const Value& other) const;
   bool operator<=(const Value& other) const;
   bool operator>=(const Value& other) const;
   bool operator>(const Value& other) const;
-
   bool operator==(const Value& other) const;
   bool operator!=(const Value& other) const;
-
   int compare(const Value& other) const;
 
   const char* asCString() const;
@@ -442,9 +445,6 @@
 
   Value& resolveReference(const char* key, bool isStatic);
 
-  /// Swap values but leave comments and source offsets in place.
-  void swapPayload(Value& other);
-
 #ifdef JSON_VALUE_USE_INTERNAL_MAP
   inline bool isItemAvailable() const { return itemIsUsed_ == 0; }