fix($compile): reject multi-expression interpolations for src attribute

BREAKING CHANGE: Concatenating expressions makes it hard to reason about
    whether some combination of concatenated values are unsafe to use
    and could easily lead to XSS.  By requiring that a single expression
    be used for *[src/ng-src] such as iframe[src], object[src], etc.
    (but not img[src/ng-src] since that value is sanitized), we ensure that the value
    that's used is assigned or constructed by some JS code somewhere
    that is more testable or make it obvious that you bound the value to
    some user controlled value.  This helps reduce the load when
    auditing for XSS issues.

    To migrate your code, follow the example below:

        Before:
            JS:
                scope.baseUrl = 'page';
                scope.a = 1;
                scope.b = 2;
            HTML:
                <!-- Are a and b properly escaped here? Is baseUrl
                     controlled by user? -->
                <iframe src="{{baseUrl}}?a={{a}&b={{b}}">

        After:
            JS:
                var baseUrl = "page";
                scope.getIframeSrc = function() {
                  // There are obviously better ways to do this.  The
                  // key point is that one will think about this and do
                  // it the right way.
                  var qs = ["a", "b"].map(function(value, name) {
                      return encodeURIComponent(name) + "=" +
                             encodeURIComponent(value);
                    }).join("&");
                  // baseUrl isn't on scope so it isn't bound to a user
                  // controlled value.
                  return baseUrl + "?" + qs;
                }
            HTML: <iframe src="{{getIframeSrc()}}">
fix($parse): move global getter out of parse.js
test($compile): fix IE specific test.
fix($location): default to / for the url base if no base[href]

With the recent refactoring of $location service we changed this behavior
resulting in a regression.

Previously we thought that html5 mode always required base[href]
to be set in order for urls to resolve properly. It turns out that
base[href] is problematic because it makes anchor urls (#foo) to
always resolve to the base url, which is almost always incorrect
and results in all anchors links and other anchor urls (e.g. svg
references) to be broken.

For this reason, we should now start recommending that people just
deploy to root context (/) and not set the base[href] when using
the html5 mode (push/pop history state).

If it's impossible to deploy to the root context then either all
urls in the app must be absolute or base[href] must be set with the
caveat that anchor urls in such app won't work.

Closes #2762
docs(guide/expression): remove reference to `NullPointerException`
chore(doc_gen): add task to run doc-gen specs
fix(doc-gen): correctly transform index files

Closes #3021
docs(guide/controller): fix an error in the scope inheritance example

The chained scope creation example at the bottom of this document was using the childCtrl to create the babyScope, instead of the childScope.
docs(tutorial): add experiment showing reverse sort
docs(ngMock/$httpBackend): fix testing example

Closes #3075
docs(guide/e2e-testing): clarify description of input(name) selector

The description of the input selector made it seem that you were selecting
an input element based upon it's name attribute. In reality, you are
selecting an element by the string in the ng-model attribute.
docs(ngPluralize): improve wording
docs(ngBind): clarify some of the writing
chore(build): temporarily add more logging to debug flakiness on CI
fix(compiler): corrects component transclusion on compilation root.

Closes# 2155
style(ngRepeatSpec): fix up colons and iit
chore(build): change logging level for e2e tests to info
docs(misc/faq): remove obsolte t-shirt instructions
chore: remove jstd leftovers
chore: update karma to 0.9.4

And also add shared config to make karma configs a bit simpler.