Catch errors on streaming ListView#add

ListViews are useful because you can create one, pipe in some streams (to the ListView itself as well as to `ListView#more`), and it takes care of converting Content to ContentViews, adding it to the DOM, etc. That is, it's good at creating and appending subViews over time.

Unfortunately, this is a complicated enough process that Errors are inevitable. For example, a piece of Content in Livefyre's backend could have an attachment that, when inserted in a `document`, causes an exception to be thrown on the page. Should apps using ListView or Collection keep throwing that error and cause everything to break? Probably not!

Now, when `ListView#add` is called by streaming updates (`ListView#write` or when `ListView#more` is read by the more-mixin), any underlying errors will be caught and re-emitted on the ListView as an `error.add` event.

There is a default handler for this event which will currently handle ListViewInsertErrors. If this is the underlying error, then the ListView will attempt to ensure that the offending subView is `.remove`d from the listView.

If you do not like this default behavior, you can implement your own `listView.catchListViewAddError`

---

This also fixes a CSS bug that would cause `<script>` elements in attachments to be display: block instead of hidden.

I'll refrain from weighing in on a general rule about that.

In the case of streams, this is just how you make one. Readable, Writable, etc are abstract, so to make one you have to override this method. It's most commonly done in a subclass definition, but I didn't want to do that here.

http://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback_1
https://github.com/Livefyre/stream/blob/master/src/writable.js#L53