Expand template parameters template properties

:warning: This depends on #1336 :warning: 

This PR introduces template properties. Template properties are properties on components that are available in FRB expressions, the way to access them is through a colon (e.g.: `@component:property`). They are called template properties because they're defined in the Component's template and not on the component itself.

Repetition now uses template properties to expose the iteration object (`:iteration`) and `objectAtCurrentIteration` is deprecated.
Instead of `@repetition.objectAtCurrentIteration` you need to bind to `@repetition:iteration.object`
The advantage is the ability to bind to the outer repetition in a nested repetition scenario, something that it was not possible before (example: https://gist.github.com/aadsm/7440426).

Another addition are template property aliases. They allow a component to define a template property for itself that internally is resolved as the template property of another component.
Example: The List component has a repetition in its template, the user of the List does not know about this because it's an internal implementation. The List can expose its `@repetition:iteration` externally by defining a template property in its template serialization:

```json
{
    ":iteration": {
        "alias": {"@repetition:iteration"}
    },
    ...
    "repetition": {...}
}
```

(example: https://gist.github.com/aadsm/7440583)

The advantage is to avoid using `observeProperty` to create an `objectAtCurrentIteration` in the List that maps to its internal repetition's `objectAtCurrentIteration`.
Additionally, we can create components with nested repetitions that expose the inner most repetition's `:iteration`. This was not possible to do with the `observeProperty` and was blocking us from creating a table component in a simple manner. (example: https://gist.github.com/aadsm/7440622)

When this is merged the mfiddle examples will be updated to use `:iteration` and the documentation about the repetition (http://montagejs.org/docs/repetition.html) needs to be updated to reflect the new changes.
We don't have a document on the Template yet.