grunt: add start task

This replaces the "npm start" script. I was having problems with a
template file having been sent with a max-age=3600 header, resulting
in my seeing the old version after reloading.

Using a more full-featured static web server will likely be useful in
the future. For one, we can begin serving the bower_components
directory with an expires header. We can also consider serving the app
from a more Swift-like URL.
bower: add angular-bootstrap

This is a series of Angular-native JavaScript UI components. We will
be using the $modal service next for the login dialog and can now use
other services in the future.
karma: include ui-bootstrap

This is necessary for when we begin using the ui-boostrap components
in our code.
auth: move sb-auth-dialog into $auth

This removes the implicit dependency between the two components by
making the $auth service responsible for opening the login window.

Before, the sb-auth-dialog directive was observing $auth.authState and
the directive HTML was hidden/shown depending on this state. This is
now more explicit and streamlined since $auth simply opens the modal
when needed.

I kept the deep indentation in auth-dialog.html to better show the
changes needed. This will be fixed in the next commit.
auth-dialog: fix indentation
auth-modal: standardize on -modal name
auth-modal: use modal-footer
auth-modal: make auth button primary
Merge pull request #64 from mgeisler/auth-modal

Introduce Angular Bootstrap