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 pull request #1146 from JeffPyeBrook/pr-protect-against-recursive-callback

Data Map class can fail in a confusing way if constructed incorrectly