Fix variable scope issues in template-spec
Generate new data-montage-ids using the same base id

When adding new DOM nodes to a template solve the data-montage-id
clashes by generating a new id based on the original id.
Update mousse version to use the labeler API that supports this.
Add optional labeler to resolve mid collisions

When adding DOM nodes to a template data-montage-id's that collide with
the existing ones, the ids are resolved using a labeler.
This option allows the user to specify its own labeler.
Add the ability to pass own labeler when merging serialization

When solving label conflicts an internal labeler is used to generate
new labels. This gives the user the option to provide its own labeler.
Add serialization getElementId

Returns the element id of a component's element in the serialization.
Allow willMergeObjectWithLabel to change an objects label

willMergeObjectWithLabel only allowed for returning a label that existed
 in the destination serialization if the objects were the same.
This generalizes this delegate method and allows it to return a completely
new label to use when merging the object.
Merge pull request #1376 into master

Conflicts:
	package.json