[BUGFIX release] Fix #3681.

`Em.arrayComputed` is not presently compatible with lazy CPs. There are a few
issues.

1.  To keep refs up to date, observers stay around as long as the object does.
2.  Those observers can repopulate the cache, but when they do so they fail to
    add dependent keys when the cache was empty.

This commit works around 2. by not removing them in the first place.
Essentially the semantics for `ArrayComputedProperty`s differ from standard
`ComputedProperty`s with regards to laziness.

These observers need to be managed better.  Probably the right thing to do, now
that `recomputeOnce` is no longer necessary, is to:
  1. Fix `Em.computed.sort` to not use `recomputeOnce`;
  2. Fix `Em.arrayComputed` to return a proxy to the cached value;
  3. Teardown array observers when the deps count hits 0.

This will give reduce computed properties semantics much closer to regular
computed properties.  There are two important points to note about this
suggestion:

1.  The cached values would still update synchronously.  This can be improved
    with a lazy array implementation and @wycats's skiplist strategy.
2.  The semantics of an array computed would change such that existing refs
    would only be kept up to date as long as the cache had not been invalidated.
    This is probably fine: the current behaviour is not promised in the
    documentation anywhere and it would be pretty bad practice to keep
    references around rather than `Ember.get`ing them.
[beta] Replaces anonynoums functions with named ones
[DOC beta] Assert if template for {{render}} not found.

Added an assertion if the template name provided to `{{render}}` was not
found.

Two tests were previously not working properly, and have been fixed. They registered
templates as `"blog/post"`, which is never looked up with `{{render}}` (as any
slashes in the name are translated to a period before this lookup
happens).

Resolves #3926.
Clarifies that the endIndex for slice isn't included. 

Other JS references clarify this and I found myself tripping on it today since it wasn't obvious.
Fix typo in `unordered list`
[BUGFIX beta] Ensure {{link-to}} path observers are reregistered after render.

Prior to this change we called `registerObserver` on `init` so that `this.rerender` was triggered
when the link text changes (see [here](https://github.com/emberjs/ember.js/blob/3a7f4ae7c0be07f064f31e1df3f06d38ff866f4c/packages/ember-routing/lib/helpers/link_to.js#L192-L196)).

This worked properly to trigger the first `rerender`, but since `registerObserver` tears down the observer on `willClearRender`
(see [here](https://github.com/emberjs/ember.js/blob/3a7f4ae7c0be07f064f31e1df3f06d38ff866f4c/packages/ember-views/lib/views/view.js#L2273-2275)) and the observers
were not set back up, we would only handle a single change.

This change ensures that the observers are setup after each time the view is rerendered.
Merge pull request #3930 from CodingFu/patch-1

Fix typo in `unordered list`
Merge pull request #3928 from MiguelMadero/document-slice

Clarifies that the endIndex for slice isn't included.
Merge pull request #3932 from rjackson/fix_link_to_non-block

[BUGFIX beta] Ensure {{link-to}} path observers are reregistered after render.
[BUGFIX beta] Do not attempt to serialize undefined models.

If a routes model is undefined do not attempt to serialize it.

Previously, this would cause an error like: `Cannot call get with 'id'
on an undefined object.`.
Remove broken Vagrantfile - Closes #3938
remove cookbooks because we don't have vagrant
Remove `.vagrant` from gitignore

Vagrant itself was removed in bd4ee53f1aee1888a9468dc04af7fbe3039264fa
Merge pull request #3941 from speedmanly/patch-1

Remove `.vagrant` from gitignore
Merge pull request #3933 from rjackson/fix_serialize_on_missing_models

[BUGFIX beta] Do not attempt to serialize undefined models.
Remove Vagrant references from CONTRIBUTING.md.
Merge pull request #3939 from fivetanley/remove-cookbooks

remove cookbooks because we don't have vagrant
Merge pull request #3942 from rjackson/remove_vagrant_from_contrib

Remove Vagrant references from CONTRIBUTING.md.
Merge pull request #3943 from stefanpenner/promise-proxy-uses-cast

PromiseProxy prefers Promise.cast over resolve, this makes it work corre...
Assert if {{render}} is called with an unquoted name.

Eventually, `{{render}}` should be similar to `{{partial}}` where an
unquoted templateName is used to do bound parameter lookup.

This PR updates the tests to use quotes, and adds an assertion if an
unquoted param was provided.