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
docs(LICENSE): update copyright year to 2014

Closes #155
chore(travis): use more recent version of node
style(controllers): consistent use of dots

The second controller led with a period while the first did not.
Moving the period in front of the first controller creates consistency
and more explicitly conveys the chaining behavior.

Closes #138
chore(travis): run http-server in the background
test(controllers): use $controller to get hold of a controller for testing

Closes #75
chore(travis): install the webdriver for protractor
style(filters): add missing semicolon
chore(jshint): add jshint config file