Scoped messages

Allow scoping of messages. Took longer than I thought, but I think I like the final implementation.

Highlights:
 - Tests work now
 - Automatically sanitize the flash messages with `ngSanitize` (needed for the above)
 - Flash messages are not stored on the rootScope and can be overridden by passing in a custom scope.

Notes/Questions:
 - I'd like to use a getter for `messages`, but it doesn't seem like there's a well supported way to do this (browser compatibility issues with `object.defineProperty` and `get messages()`)
 - Only tested via tests, working on manual testing now
 - Weaker unit tests compared to integration tests. This is because I started with integration tests. I don't think adding additional unit tests is going to provide more coverage. Let me know if you disagree.

cc @ejholmes @jerrysu 
Instead of hard coding `_flash` as the scope key. Maybe make it [a configuration option](https://github.com/remind101/angular-flash/blob/scoped_messages/src/angular-flash.js#L27-L32)

So you can do something like:

```javascript
module.config(function($flashProvider) {
  $flashProvider.setScopeKey('flash');
});
```