deliteful/Toaster widget

I'm not sure I explained it correctly in the doc, so please let me try again.
What I meant is:

`this.dismissible` is a property the user can set to express the fact that he wants the message to be dismissible (`this.dismissible === true`) or not  (`false`). This puts a dismiss button in the corner of the message.

If the user does not state a particular behaviour, `this.dismissible` is left to is default value: `null`. In that case, we look at `this.isExpirable` to determin whether the message should have a dismiss button.

In other words:
```js
new ToasterMessage({message: "...", duration: 1000}) // produces a non dismissible message, because dismissible === null and it expires
new ToasterMessage({message: "...", duration: -1}) // produces a dismissible message, because dismissible === null and it doesn't expire

new ToasterMessage({message: "...", duration: 1000, dismissible: true}) // makes a dismissible message
new ToasterMessage({message: "...", duration: -1, dismissible: true}) // makes a dismissible message
new ToasterMessage({message: "...", duration: 1000, dismissible: false}) // makes a non permanent message
new ToasterMessage({message: "...", duration: -1, dismissible: false}) // makes a non permanent message
```

The motivation behind it is that a message that doesn't expire should be by default dismissible, otherwise the user of the app has no way of getting rid of it. It doesn't have to be so on a message that will expire and fade on its own.
I realize this complicates the API somehow though. Let me know what you think.