fix($rootScope): workaround for Chrome's memleak

Under certain circumstances chrome fails to GC scopes
because of buggy optimizations and caching. Nulling out
references to (not from!) other scopes helps Chrome to
realize that this object should be GC-ed.

This is really just a workaround as the real problem needs
to be fixed in Chrome.

See discusstion at:
https://github.com/angular/angular.js/issues/1313#issuecomment-10378451

And chrome bug at:
https://code.google.com/p/v8/issues/detail?id=2073

Closes #1313
fix(CSP): update to the latest CSP api

window.SecurityPolicy.isActive() is now window.securityPolicy.isActive

since this is available only in Chrome Canary which has already been
updated, we can safely make this change without worrying about
backwards compatilibty.

Closes #1577
docs($q): fix missing bracket in the example
docs(guide/directive): fix typo
docs(guide/concepts): some typo/grammar fixes
docs(): Fix a couple of typos in the documentation
fix($resource): prevent default params to be shared between actions

Having a $resource defined as:

var R = $resource('/Path', {}, {
  get: {method: 'GET', params: {objId: '1'}},
  perform: {method: 'GET'}
});

was causing both actions to call the same URI (if called in this order):

R.get({}); // => /Path?objId=1
R.perform({}); // => /Path?objId=1
fix($cacheFactory): return undefined when removing non-existent entry

Instead of throwning an exception, remove should return undefined when
cache entry to be removed doesn't exist.

Closes #1497
feat(linky): allow optional 'target' argument

Closes #1443
fix($http): config.param should expand array values properly

Today, calling e.g. $http(url, { params: { a: [1,2,3] } }) results in a query
string like "?a=%5B1%2C2%2C3%5D" which is undesirable. This commit enhances
buildURL to createa query string like "?a=1&a=2&a=3".

BREAKING CHANGE: if the server relied on the buggy behavior then either the
backend should be fixed or a simple serialization of the array should be done
on the client before calling the $http service.

Closes #1363
feat($cacheFactory): cache.put now returns the added value

This allows common programming patterns to be expressed with more
concise code.

See #1583 for code examples.
docs(api): add ngRequired to input/select/textarea directives

Closes #1202
docs(README.md): fix "API Docs" link

use direct link to api docs
fix(Scope): allow removing a listener during event
docs(CONTRIBUTING.md): add contrib info file for GitHub
chore(jquery): upgrade to jquery 1.8.2
feat(jqLite): add triggerHandler()

we need triggerHandler() to become jQuery 1.8.x compatible.

this is not fully featured triggerHandler() implementation - it doesn't
bother creating new DOM events and passing them into the event handlers.

this is intentional, we don't need access to the native DOM event for our
own purposes and creating these event objects is really tricky.
fix(jqLite): fire $destroy event via triggerHandler

in jQuery 1.8.x the data() data structure is changed and events are
not accessible via data().events. Since all we need is to trigger
all event handlers, we can do so via triggerHandler() api instead of
mocking with the internal jQuery data structures.

This fix was originally proposed by PeteAppleton via PR #1512.

Closes #1512
fix(jqLite): support append on document fragment

previously jquery didn't support append on this node type, now it does
(since 1.8.x) so I'm adding this to jqlite as well.
feat(form): add ability to reset a form to pristine state

Retting a form to pristine state will cause all of the nested
form and form controls to be recursively reset as well.

Closes #856