Refactoring pubsub mechanism.

Pubsub calls are now made within a "domain" (at this point, a project),
which just extends its pubsub topic with the repr of the domain.

Closes #7.
Show an error dialog if song loading fails.
More dsecriptive error message in filepack.

When the number of blocks doesn't equal the number of block switch
targets, state how many of each one you expect.