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
feat($location): add support for state and title in pushState

Adds $location pushState & replaceState methods acting as proxies to history
pushState & replaceState methods. This allows using pushState to change state
and title as well as URL. Note that these methods are not compatible with
browsers not supporting the HTML5 History API, namely IE<10.