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
chore(release): cut 1.2.0rc1 spooky-giraffe
docs(CHANGELOG): update changelog
chore(release): version bump
chore($parse): remove duplicate comment line
docs(tutorial): fix links to ngRoute module
chore(grunt): ensure that grunt uses zip for compression
chore(sauce): use tunnel-identifier and ready-file only on Travis

When running locally, there's not TRAVIS_JOB_NUMBER env variable defined and it screws
the Sauce Connect (it uses a tunnel with empty name), this makes it work locally without defining
TRAVIS_JOB_NUMBER env variable.

Also, if you run the sauce_connect_setup.sh locally, without having SAUCE_CONNECT_READY_FILE, it
does not pass the `--ready-file` argument to avoid Sauce Connect blowing up.