docs(contributing): add code of conduct
revert: refactor(mocks): simplify the `inject` implementation

This reverts commit 64d58a5b5292046adf8b28928950858ab3895fcc.

For some weird reason this is causing regressions at Google.
I'm not sure why and I'm running out of time to investigate, so I'm taking
a safe route here and reverting the commit since it's just a refactoring.
docs(changelog): release notes for 1.2.12
chore(release): update cdn version
chore(testing): switch Jenkins to test e2e only on chrome

End to end tests will continue to be run on Safari and Firefox on Travis.

Closes #6187
refactor(doc): separate end to end tests into jquery and jqlite files
refactor(testing): split travis end to end tests into separate jobs for jquery and jqlite

Closes #6159
docs(guide/scope): fix a typo

Signed-off-by: Caitlin Potter <caitpotter88@gmail.com>

Closes #6202
docs(concepts): Remove pointless `* 1`s

Closes #6206
fix($compile): ensure element transclusion directives are linked with comment element

This corrects a complicated compiler issue, described in detail below:

Previously, if an element transclusion directive contained an asynchronous directive whose template
contained another element transclusion directive, the inner element transclusion directive would be
linked with the element, rather than the expected comment node.

An example manifestation of this bug would look like so:

```html
<div ng-repeat="i in [1,2,3,4,5]">
  <div my-directive>
  </div>
</div>
```

`my-directive` would be a replace directive, and its template would contain another element
transclusion directive, like so:

```html
<div ng-if="true">{{i}}</div>
```

ngIf would be linked with this template content, rather than the comment node, and the template element
would be attached to the DOM, rather than the comment. As a result, this caused ng-if to duplicate the
template when its expression evaluated to true.

Closes #6006
Closes #6101
docs(faq): add link to MIT license

Closes #6197
docs(guide/concepts): removing confusing use of hoisting

Closes #6207
style(guide/concepts): remove ws
docs(ngSubmit): ngSubmit also works with the `data-action`/`x-action` attributes

The documentation states only the "action" attribute triggers this, which is incorrect. When using
the attribute "data-action" (as for AJAX control, attempting to bypass the "action" attribute but
still make it obvious what its for), Angular thinks this is also classified as "action" and
continues with the page submission.

Closes #6196
docs(guide): add new resource links

Added a link to 10 reasons to use and online courses for Angular

Closes #6194
style(guide): remove ws
docs(guide/index): replace "shold" to "should"

Replace "shold" to "should"

Closes #6216
refactor(ngTransclude): use transclusion function passed in to link

Since we now pass in the transclusion function directly to the link function, we no longer need
the old scheme whereby we saved the transclude function injected into the controller for later
use in during linking.

Additionally, this change may aid in correcting a memory leak of detached DOM nodes (see #6181
for details).

This commit removes the controller and simplifies ngTransclude.

Closes #5375
Closes #6181
feat(filterFilter): support deeply nested predicate objects

Due to 339a165, it became impossible to filter nested properties of an object using the filterFilter.
A proposed solution to this was to enable the use of nested predicate objects. This change enables the
use of these nested predicate objects.

Example:

```html
<div ng-repeat="it in items | filter:{ address: { country: 'Canuckistan'}}"></div>
```

Or

```js
$filter('filter')(items, { address: { country: 'Canuckistan' } });
```

Closes #6215
Related to #6009
docs(jqLite): link to jQuery.fn.bind/unbind docs rather than jQuery.fn.on/off docs

Сorrect link.

Closes #6171