Simplify no-results message for events listings

The no-results state for events listings a filters needed a bit of cleanup as we were handling the states in CSS:

- Refactor no-results message to not use CSS
- Require a no-results message to passed when including the events list fragment
- Don't pass `PageInfo` as it is not being used
- Add `isFilterable` option to list fragment to only add filter classes when needed.
- Update `filter.js` to render no results message when there are no filtered results
- Refactor `filter.js` to better match coding style of other modules, and swapped `bean` for native events. Add guard so it doesn't always run.
- Updated category filter in `filter.js` to not be tied to masterclasses.

**Quick demo to confirm the refactor has not affected filters:**

![filters mov](https://cloud.githubusercontent.com/assets/123386/5577913/b374d7ee-9013-11e4-9f56-00c4661f0792.gif)

Do you think this is clear enough what this does without the comment? Probably is...