Support object with `Ember.String.fmt`

* before:

``` javascript
'data: %@'.fmt({id: 3}); //=> 'data: [object Object]'
```

* after:

``` javascript
'data: %@'.fmt({id: 3}); //=> 'data: {a: 1}'
```

This commit improves assertion message such as the following:

``` javascript
Ember.assert('Your data must contain `id`. But actual: %@'.fmt(data), data.id);
```
Merge pull request #3020 from tricknotes/string-fmt-with-object

Support object with `Ember.String.fmt`