github-status: remove old code in spec
feat(github-status): use token from users with push access

To update the GitHub commit status, the permission needed on the GitHub
API end is just push access to the repository, so we don't need to look
for admins.

This commit changes it so that multiple tokens are sent (in order to
help with error handling):

 - The token for the committer
 - The token for the admin
 - The tokens for all users with push access (according to the last
   sync)

The reason for this order is that GitHub stores the user who set the
commit status. It would make most sense if the committer set it, but if
we can't find their token (or they don't have push access), then we can
use the admin instead (who possibly set up Travis CI). Failing that,
we'll just use any token as it's more important to have the token get
set if we can.
fix(repository): make users_with_permission work (and add tests)
user: add method to find a user given an email address
stubs: stub out users_with_permission on the repo stub