default values of maps must be copied

Otherwise the same underlying map is used and operations on option.value
also change option.defaultValue. Therefore a valid comparison of .value
and .defaultValue is impossible.
Fix comparing value with defaultValue for IniIncludeDefaults

We need to compare the interface values of reflect.Value otherwise
reflect.DeepEqual is always false.

This commit also adds a test for this and uses a table driven test for
testing ini writing.
Be more verbose on TestWriteIni errors
Merge pull request #65 from zimmski/fix-default-values

Fix map default values and IniIncludeDefaults