added NSMutableDictionary category.
untested, but should have mutable dictionary merge code done.
efficiency gain: only create a mutable copy of an object to be merged if necessary.
removed assumption that objects being merged need to be of the same kind of class. Now a method in the Merge protocol determines if one object can be merged with another.
explicitly stated that the methods of the Merge protocol are required.
Moved merge logic into a class method in a new utility class because it is generic enough to be applied to all mergable objects.
Added a simple test of the merge operations. Fixed some syntax bugs with merge functions.