fix(re-bootstrap): Throw an error when bootstrapping a bootstrapped element.

Nothing would prevent a user from accidentally calling angular.bootstrap on an element that had already been bootstrapped. If this was done, odd behavior could manifest in an application, causing different scopes to update the same DOM, and causing debugger confusion.

This fix adds a check inside of angular.bootstrap to check if the passed-in element already has an injector, and if so, will throw an error.
chore($q): rename `promise.always` to `promise.finally`

BREAKING CHANGE: the `always` method has been renamed to `finally`.

The reason for this change is to align `$q` with the Q promises library,
despite the fact that this makes it a bit more difficult to
use with non-ES5 browsers, like IE8.

`finally` also goes well together with `catch` api that was added to
$q recently and is part of the DOM promises standard.

To migrate the code follow the example below:

Before:

$http.get('/foo').always(doSomething);

After:

$http.get('/foo').finally(doSomething);

or for IE8 compatible code:

$http.get('/foo')['finally'](doSomething);
style(minerr): prefer component name as namespace

Closes #3527
fix(ngInclude): ensure ngInclude is terminal and uses its own manual transclusion system
fix(ngView): ensure ngView is terminal and uses its own manual transclusion system
chore(ngAnimate): fix incomplete animation test
fix(ngAnimate): make sure that the class value passed into addClass/removeClass is the base class string value
fix($compile): correct controller instantiation for async directives

This fixes regression introduced by #3514 (5c560117) - this commit is being
reverted here and a better fix is included.

The regression caused the controller to be instantiated before the isolate scope
was initialized.

Closes #3493
Closes #3482
Closes #3537
Closes #3540
feat($route): express style route matching

Added new route matching capabilities:
  - optional param
Changed route matching syntax:
 - named wildcard

BREAKING CHANGE: the syntax for named wildcard parameters in routes
    has changed from *wildcard to :wildcard*

    To migrate the code, follow the example below.  Here, *highlight becomes
    :highlight*:

    Before:

    $routeProvider.when('/Book1/:book/Chapter/:chapter/*highlight/edit',
              {controller: noop, templateUrl: 'Chapter.html'});

    After:

    $routeProvider.when('/Book1/:book/Chapter/:chapter/:highlight*/edit',
            {controller: noop, templateUrl: 'Chapter.html'});
fix($location): don't initialize hash url unnecessarily

After a recent refactoring using $location in the default hashbang mode would result
in hash url being initialized unnecessarily in cases when the base url didn't end
with a slash.

for example http://localhost:8000/temp.html would get rewritten as
http://location:8000/temp.html#/temp.html by error.
chore($location): drop bugus error

we can never get to this state, so dropping the error
docs(minErr): add location/ihshprfx
docs(minErr): add location/isrcharg docs
docs(minErr): add location/ipthprfx
test($location): fix broken tests

sorry, my bad!
fix(minerr): escape double quotes in error displays

Closes #3553
chore(changelog.js): pickup breaking changes f/ chore/refactor commits
chore(mocks): remove obsolte createMockWindow api

we never released this api, so it's safe to remove
docs(CHANGELOG): release notes for 1.2.0-rc1 spooky-giraffe
chore(grunt): support RCs in version numbers