Ensure that async hasMany is always a promise
Merge pull request #1505 from bradleypriest/embedded-mixin

Extract Embedded Records into DS.EmbeddedRecordsMixin
Make Ember::Data::VERSION match Gemspec.
Merge pull request #1533 from rjackson/match_gemspec_version

Make Ember::Data::VERSION match Gemspec.
Allow `recordIsLoaded` to be called with a string for the type.

`recordIsLoaded` did not support execution with a string as the `type`
argument, only a DS.Model class reference. This commit makes either
form possible. Consistent with `find`, the `type` argument is
passed through `modelFor` to resolve a class reference.
Merge pull request #1536 from lukemelia/record-is-loaded-with-string

Allow `recordIsLoaded` to be called with a string for the type.
begin tidying up promise usage.

Passing resolver from a caller to a callee, when the
callee merely returns the resolvers resolution is not needed.

In scenarios which still require this pattern, simply providing
the resolve of the resolver is sufficient.
remove unneeded closure.
Ember.computed's first property can also be the DK
Fix property order in code comment

The property order should be `type` -> `hash` -> `prop`.
Merge pull request #1538 from tricknotes/fix-property-order-in-code-comment

Fix property order in code comment
Removing deleted records from RecordArrays is now async.

Previously filtered record arrays were updated asynchronously when records were added, but record arrays were updated synchronously when records were deleted.  This led to surprising behavior such as:

```js

myRecordArray.get('length') // => 2
myRecordArray.invoke('deleteRecord');

// we didn't delete everything, because we mutated the record array during iteration
myRecordArray.get('length') // => 1
```

Now all record array updating goes through the same code path.

-- David J. Hamilton & Stefan Penner
Merge pull request #1541 from stefanpenner/async-record-array-deletion

Removing deleted records from RecordArrays is now async.
Ember.run.once of an anonymous function is just wasteful, as each
invocation creates a new function.

All this would do is add some extra work to backburner.
Throw instead of assert in `modelFor` when type can't be resolved.

Background: Asserts are stripped out of production builds. In production,
it is possible that a root key in an API response changes in a way that
your serializer's `typeForRoot` implementation does not convert properly.
Since the assert in `modelFor` is stripped in production builds, the
javascript error raised in a production environment would be:

  "Cannot set property 'typeKey' on undefined"

This commit changes the assert to a check and throw so the error
raised would be something like:

  "No model was found for 'home_planet'"

The provides a much more helpful error for real-world production
errors at a relatively small price (one extra line of code and
a simple value check).
Merge pull request #1547 from lukemelia/model-for-error-message

Throw instead of assert in `modelFor` when type can't be resolved.
Merge pull request #1537 from stefanpenner/tidy-promise

begin tidying up promise usage.
Update header comment format to keep it on minify

Some minifier keep header comment over its format.

1. YUI Compressor
It keeps the header comments beggining with `/*!`
* http://yui.github.io/yuicompressor/css.html#special-comments

2. Closure compiler
It keeps the header comments containing `@license` or `@preserve`
* https://developers.google.com/closure/compiler/docs/js-for-compiler#tag-license

I think header comment is very important because it includes its own license.
Merge pull request #1552 from tricknotes/update-header-comment-format

Update header comment format to keep it on minify
Merge pull request #1440 from teddyzeenny/async-has-many

Ensure that async hasMany is always a promise