Expose a web service method to fetch user activity.

Currently, fetching user activity on the front-end is done in a fairly stupid way, filtering the global event list for events associated with the single user in question. This is extremely slow if the user has little or no activity because we end up traversing the whole list.

This change introduces a WS method for traversing an individual user's event stream, with filtering options as per the system wide method.

It additionally provides a few micro-optimisations that should make stream filtering slightly more efficient, such as using `Set` and `EnumSet` container types for filter options.