Comment Google Analytics script to work in dev

Conflicts:
	index.html
Replaces almost all of the plugins with their bower equivalent.

Adds the fully fleshed out bower.json file.
Adds the bower_components dir to gitignore.
Adds jshintrc
Renamed library.js to subsonicCtrl.js (the name of the actual controller).

Cleanup: remove commented code, unused variables, apply jshint.
Adds Karma test-runner.
Tweaks the test jshintrc.
Separates the Subsonic Service into its own file.

Adds test stubs for the subsonic controller and subsonic service.

Conflicts:
	js/service.js
Removes duplicate "globals" service and adds it into its own globals-service.js file.

Adds unit tests for the two functions BaseURL and BaseParams

Conflicts:
	js/service.js
Rename the previously changed subsonic controller, service and related tests.

In order to better follow the google naming convention.

See https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub
Further separates services, directives and filters into individual files for a better organization.

Conflicts:
	js/app.js
	js/service.js
	js/services/utils-service.js
	test/services/model-service_test.js
Removes the _saved dir, we can always see those files in the Git history.
Modifies all the controllers to access the Jamstash module through angular instead of a global var.
Adds a first Grunt file copied from the yeoman angular generator.

It enables us to :
- automatically inject our bower dependencies into index.html,
- run a webserver which will livereload whenever we change files
- run unit tests with karma on a real browser whenever we change files.

Renames the style dir into styles which is the convention.

I've removed a lot of the original gruntfile because I don't yet understand it. I'll add it back when I start working on how to distribute (minify, concat, etc.) the app.

Conflicts:
	index.html
Fixes the "serve" task to enable us to properly launch karma and run tests continuously.

Adds an override to enable wiredep to inject fancybox which doesn't have a "main" in its bower.json.

Tabs to spaces in Gruntfile.js.

Conflicts:
	index.html
Renames all tests according to angularseed's style convention.

Refactors subsonic service's getStarred method to use angular $http and to limit results on the client side since we can't do it with Subsonic's API.

Adds a working unit test for this new method.
Merge branch 'refactor' into develop
Refactors the getStarred function, refactors its tests.

getStarred queries the Subsonic server and caches the request. It handles both GET and JSONP. It returns meaningful messages when there is a problem and distinguishes between HTTP errors and Subsonic errors.
Those messages are meant to be displayed by the controller using the notifications.

The tests are refactored too : most of what is common is at the top describe to keep the tests lean. Tests for error conditions have been added.
Adds underscore and underscore-angular in order to use the sample() utility function.

It will allow us to randomly select a sub-array from an array and emulate on the client-side something like "random starred songs".
Completes getRandomStarredSongs() with further error handling and using underscore's sample function.
Merge branch 'starred-playlist' into develop