docs: fix icons

Copy fontawesome during build
docs(guide): hide scenario for directive example

scenario test for this example would be tricky, we need to teach
the runner how to inject mocks first.
chore(nodeserver): add font mime type
docs(styles): fix the cog icon alignment
docs(faq): update faq docs
refactor(formSpec): group preventDefault specs into a describe
test(form): fix broken preventDefault test

the original test relied on incorrect assumptions about how jasmine async
tests work (when setTimeout is triggered) and how browser reloads a page
(the sequence of events) and thus the test passes even when the default
is not prevented.

this change fixes the test by registering an extra submit event handler
that checks if the default was prevented.

if the default was not prevented, the test will fail and the page will
be reloaded causing the test runner to panic.
fix(form): prevent page reload when form destroyed

this fix ensures that we prevent the default action on form submission
(full page reload) even in cases when the form is being destroyed as
a result of the submit event handler (e.g. when route change is
triggered).

The fix is more complicated than I'd like it to be mainly because
we need to ensure that we don't create circular references between
js closures and dom elements via DOM event handlers that would then
result in a memory leak.

Also the differences between IE8, IE9 and normal browsers make testing
this ugly.

Closes #1238
test(jqLite): add missing test for $destroy event
docs($rootScope): fix $on listener signature doc

Added args in $on() listener syntax declaration
feat($sniffer): auto detect CSP mode

Chrome Canary now has CSP with apis that allow auto-detection. This change
will turn on CSP mode automatically when we detect its presence.

https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces--experimental
fix(option): support option elements in datalist

previously we expected to find option elements only within select element and if
that was not the case we throw an error. This made it impossible to include datalist
element with nested option elements in the template.

Closes #1165
feat($http): support reponseType

Closes #1013
fix(docs): added note about needing JSON shim for IE7 and earlier
fix(docs): added note about using JSON3 as a polyfill for IE7
chore(ngDoc): add support for custom @usage metadata
fix(docs): fixed documentation for using linky
docs: fix broken links to $compileProvider.directive()
docs($compileProvider): remove duplicate of .directive()
docs($interpolate): fix typo in description