Ability class should be able to check permissions of multiple objects at once
Currently the Ability class can only check permissions of individual objects. This means that if you want to check the permissions of 200 users the code will end up running N queries for every user. The number of queries performed varies between the object types that are being checked. Currently checking if a user can read a certain project needs around 18 queries.