Add `hideIfEmpty` option to BaseCollectionView

This will toggle the visibility of the view based on whether the
collection is empty.

A couple of notes:

 * The visibility is not dependent on the sync status of the collection,
   so if the collection is empty because it hasn't been fetched then the
   view will still be hidden. If you'd like to show a "Loading" or
   "Empty" fallback then don't use this option.

 * We use a Presenter with an `empty` attribute. This way we only toggle
   the visibility when the value of `empty` changes. A potentially
   more straightforward approach would be to use something like:

   `@$el.toggle ! @collection.isEmpty()`

   However we introduced the presenter under the admittedly intution-
   driven assumption that the jQuery code for determining whether to
   toggle the element (which requires determing the current visibility)
   is heavier than the Backbone.Model approach of checking the existing
   value of a hash attribute.