Expose embedded options

Exposes embedded options helpers while keeping them private.

It is useful to have access to these, for example if one wanted to
make embedding records the default behaviour for their serializer they
could do that by overriding the helper methods.
Merge pull request #2163 from emberjs/exposeEmbeddedOptions

Expose embedded options
Refactor hasMany code for comments and clarity
Merge pull request #2166 from emberjs/has-many-cleanup

Refactor hasMany code for comments and clarity