Methods which return arrays created within them should call Ember.A
Merge pull request #2197 from stefanpenner/master

[fixes #2196] Enumberable#firstObject and #lastObject are computed
Fix typo in Ember.String#classify doc
Merge pull request #2200 from bradleypriest/patch-1

Fix typo in Ember.String#classify doc
Merge pull request #2167 from gavacho/fix-array-methods

Methods which return arrays created within them should call Ember.A
Fix order of argument name and its type in document
Fix argument type

`opts` is optional argument.
Remove unused variable

- `meta` is not used in `Ember.Array`.
- `defineProperty` is not used in `Ember.Observable`.
Use `//` for evaluated values

The JavaScript comment should be beginning with `//`, not `=>`.
Merge pull request #2206 from tricknotes/fix-document-in-code

Fix document in code
Merge pull request #2205 from tricknotes/remove-unused-variable

Remove unused variable
Avoid prototype property name conflict in cache key

The value that is contained as key of `Object.prototype` couldn't be dasherize.

For examples:
``` javascript
Ember.String.dasherize('toString'); // function toString() { [native code] }
```

This reason is that cache is object (not Hash or Map) inherited
`Object.prototype` as its property.

`Object` should not be used as key of cache that accept any keys from user
input.
So I used prefix `:` as the key of cache.
Remove unnecessary '#'

'#' is unnecessary for putting return value.
Merge pull request #2207 from tricknotes/remove-unnecessary

Remove unnecessary '#'
Merge pull request #2204 from tricknotes/stop-using-cache-for-dasherize

Stop using cache for `Ember.String.dasherize`
I apparently give terrible advice. the prefix is needed turns out JS
can do this lookup for us.