Make app background not so shiny.
Refactor.
Refactor ErrorReporter, ignore ValidationError.
Redesign ValidationError for async validation.
Comment some not yet ported code.
Refactor app.Storage. Rename init method to sync.
Add add-new-song action.

All app actions must go through dispatcher, because dispatcher handles
errors via promises, and actions can be logged.
Remove empty lines.
Use new validation pattern for add song.

As you can see, promises ftw :) Validation method returns promise or
can throw app.ValidationError error.
It allows us to implement async validation (with server) anytime later,
without code change.