Refactor Repetition code

Removed _setupIterationTemplate code that builds the template into
_buildIterationTemplate.
Removed _teardownIterationTemplate that purges the free iterations into
_purgeFreeIterations.
Add isDirty flag to template.

refresh() will update the template contents when isDirty is set.
The template itself doesn't know how to refresh the data, an external
object - refresher - is responsible for it.
Add function that replaces the content of the template

This new function - replaceContentWithTemplate - replaces the contents
of the current template with the contents of the template given.
Clear a cache when the document changes content

When the template document changes content we need to clear the
templateFromElementContent cache because the elements changed.
Refresh repetition iteration template when dirty

Set the repetition as the refresher of the template and rebuild the
iteration template when it's dirty and we need to create more iterations.
Also add isDirty flag to Iteration so we can discard outdated iterations
instead of storing them as free iterations.
Change the way repetition clears the component tree

Instead of using the .innerTemplate use the _innerTemplate because the
listeners mechanism might rebuild it again if innerTemplate happens
to be null.
Keep the DOM argument names

We were deleting the _domArguments object when extracting making the
name missing when getDomArgumentNames was called.
Merge pull request #1443 from aadsm/le-debug

Add the ability to set templates dirty and add a refresher to update them