Refactor and extend Merge operation so it works on Sections & KeyValues

Now, in addition to merging full `IniData` instances, you can also merge indivisual `SectionData` and `KeyDataCollection` instances, in case you want better granularity in those operations.

``csharp

   var parser = new IniParser.Parser.IniDataParser();

   IniData dataA = parser.Parse(iniFileStrA);        
   IniData dataB = parser.Parse(iniFileStrB);

   dataA.Merge(dataB);

   // dataA now contains both 
```