Allow checking any user id(s) and add options

Yikes, I've added some pretty big changes.

Problems:
It's possible for user post counts to change when a user deletes their own posts, or if an admin/mod is deleting other peoples posts and topics. For that reason, we can't just rely on the `$user->data['user_posts']` field when deleting. 

There's also a perfect event for running auto groups when posts are deleted in the remove_posts function, but it does not update the post counts in the db yet, so when deleting posts, the post count is off by 1, so the user is not removed at the right time. We need to know if we are deleting in the check() method so we can decrement the post count there.

Solutions:
For all these reasons I added an options data array that can be passed to the check method. So for example, when admin/mod deletes a topic, our event for that can pass the array of user ids in that topic to the posts type class to process them and see if any need to be auto-grouped.

I also added a new method for getting the users to process. I tried to make it as generic as possible so it can be re-used as is in other types, so hopefully only the type's check() methods will be what is different for each type. 

Basically the idea is each type's check should set itself up to process in a default way, as if no $options data is recieved, so for the posts class that would be processing the current user->data->user_id by default. Only in special cases, like removing posts, do we have a situation where we need to have the user id be that of the poster or array of posters being deleted, in which case we use the options array in our event. There can also be cases where the new get users for condition may need to be tweaked for a type, to make sure the right users are sent to the check() method.

You can see the event listener PR https://github.com/phpbb-extensions/autogroups/pull/8 for some example usages. 
The values in that array come directly from the database user_ids, from line 81 of the posts.php class below