$broadcast login, session, and logout

This implements the features in issue #12.

I'm not very familiar with the Node ecosystem. I was planning on writing tests and updating the docs, but I was unable to get the existing tests to pass, and I have no idea why.

* npm install
* bower install
* grunt

I get `TypeError: 'undefined' is not an object (evaluating '$rootScope.$broadcast')` from the auth spec.

I ran `grunt preprocess ngmin uglify` and was able to use the resulting devise-min in a real-word application, without issues. So, it must be a jasmine configuration issue. If you can get me past that roadblock, I'd like to finish what I started.
You'll need a `$rootScope.$apply();` to test the callbacks.