chore(dependencies): remove inline dependencies (use npm & bower instead)

It is inefficient to store the angular libraries inside this repository.
Moreover it is a pain to have to update them every time a new version of
Angular is released.

This commit changes the project to use bower to install the angular
dependencies.

In addition, simplify the structure of the project, all the support
scripts have either been replaced with well-defined npm modules (e.g
http-server) or have been moved to the package.json `script` property.

This means that we can now do all the management of the project with
three simple commands:

* `npm start` - start the development web server to host the application
* `npm test` - start the Karma test runner
* `npm run-script protractor` - start the Protractor end-to-end test runner

A nice feature of these scripts is that they run `npm install` first, thus
ensuring that the necessary npm dependencies are in place.  Also there is
a `postinstall` script which runs `bower install` to ensure the angular
library dependencies are in place and updates the index-async.html
with the `angular-loader.min.js` content via the following sed script:

```
sed '/@@NG_LOADER@@/{
  s/@@NG_LOADER@@//g
  r bower_components/angular-loader/angular-loader.min.js
}' app/index-async.html.template > app/index-async.html
```
chore(npm-scripts): ensure they work on Windows
chore(update-index-async): update async code in place
chore(package.json): remove postupdate hook

We would want more control over when bower updates are run.
docs(README.md): update instructions to match scripts
chore(package.json): watch test files by default
docs(README): npm test watches files for changes