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)

 That's a good point about the nth-child issue, we'll still have that problem. To be honest I don't have a particular problem with just re-rendering here, performance on mobile seems OK so it can't be causing us too many problems. I actually quite like the safety of re-rendering as long as it doesn't impact performance too much.