feat($sce): New $sce service for Strict Contextual Escaping.

Strict Contextual Escaping (SCE) is a mode in which AngularJS requires
expressions used in priviliged contexts to be explicitly marked as safe.
By default, AngularJS ships with SCE enabled.

Examples of priviliged contexts include ng-include, ng-bind-html-unsafe,
ng-src for iframe, script, etc.

How does it work?
-----------------
In a nutshell, you ensure that expressions used in priviliged contexts
are wrapped into trusted types by using $sce.trust(value, type).
Directives that require safe expressions will use
$sce.getTrusted(expression result, required type) to extract the value
for use.

What does this accomplish?
--------------------------
This enables easier analysis for security issues such as XSS, etc.
Priviliged contexts require explicitly $sce.trust()'d values, simply
binding ng-bind-html-unsafe to, say, a textarea binding won't work. One
can grep for $sce.trust calls to ensure that only bindings that you
trust (e.g. sanitized html returned from the server in the case of
ng-bind-html-unsafe) are marked safe for use in priviliged contexts. If
one can keep all $sce.trust calls at the RPC boundaries to markup safe
values returned by the server, the auditing load reduces significantly.

squash! wip

squash! wip

IE compability fixes.