U4-4629 - Detecting existing macros

By setting the ID of the macro the repository layer will update the existing instance rather than trying to create a new one, which would result in a duplicate alias and that violates a table index.
Merge branch 'patch-1' of https://github.com/aaronpowell/Umbraco-CMS into aaronpowell-patch-1
Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2