Fetch users by GitHub ID instead of username

This will also update the username if the user was renamed on GitHub.
Update user's repositories when username changes
Fetch user from GitHub by ID when creating
Change loop to `update_all`
Move user data fetching to separate method
Only update the user if it exists
Update repositories owner instead of permissions

The old code would update every single repository the user has
permissions for.
Add tests for find_or_create_user service
Add unique index on github_id, remove unique index on login to users
Nullify logins for orgs and users if new github_id has the given login
Nullify logins for rogs and users on login change
Make repositories(github_id) index unique
Add index on github_id to organizations
Only repositories owned by a User are chaneged in find_or_create_user
Add info to logger when nullifying users
Improve support for renaming users in find_or_create_org
Merge remote-tracking branch 'origin/master' into hh-update-user-when-renamed

Conflicts:
	db/schema.rb
Get login from github in FindOrCreateUser and FindOrCreateOrg #find

If login is not available in params, we should get it from github in
order to always have fresh info.
DROP INDEX CONCURRENTLY is not available on pg 9.1
Rely on owner_name rather than id when renaming repos owner_name