asString - useful for binding to UI elements that deal only in strings

The most compelling use case for this macro is as follows

````javascript
export default Ember.Controller.extend({
   age: 26,
   ageAsString: asString('age')
});
````

**Scenario w/o `asString`**
We bind to the "age" property. Since HTML inputs deal only
in strings, when the user types in this text box, the value of the "age"
property will be updated with a string value (changing its type)

In this case, "age" changes from a numeric value to a string value
````handlebars
{{input type="text" value="age"}}
````
**Scenario w/ `asString`**
We bind to the "ageAsString" property. The HTML input updates
the "ageAsString" property when the user types in the text box, and
the value of the "age" property is updated (and it's type is respected).

In this case, "age" remains a numeric value.
````handlebars
{{input type="text" value="ageAsString"}}
````

#### Dependent on
#92 :white_check_mark: 

So if you set the `sideLengthAsString` you are also really changing the value of sideLength, converting it to a float.

I like the functionality, is a very clever way of bind and convert input values to the expected type, but the name `asString` is very neutral and I don't think it expresses the intent clearly enough.

I am thinking if we can come up with something more expressive and generic. Something like `EmberCPM.macros.cast` or `EmberCPM.macros.transform`.

Idea for the api:
```js
var Square = Ember.Object.extend({
  sideLength: 4,
  originCaster: caster('sideLength', function(val){ 
     return   })
});
```
It could even accept a function for custom casting:
```js
var Square = Ember.Object.extend({
  origin: Point.new(2,5), // This point must implement a toString() method that cast to a string
  originCaster: caster('sideLength', function(val){ 
     var coords = val.split(',');
     return Point.new(coords[0], coords[1]);
  });
});
```

Basically the idea is to have a macro that casts your value as a string and when that value is set, it updates the original property casting back the string to the original type.

What do you think?