DataMap class can fail in a confusing way if constructed incorrectly
Protect against consumer using a recursive data map creation callback
Added current data map as parameter to data map creation callback
Added comments, cleaned up usage of spaces and tabs in comments, aligned some statements
Merge remote-tracking branch 'upstream/master' into pr-protect-against-recursive-callback
Merge branch 'pr-protect-against-recursive-callback' into pr-issue-1154-countries-class-init-cleanup