refactor accounts elsewhere

Currently we have four accounts elsewhere, three useful for authentication (Bitbucket, GitHub, Twitter) and one that can be connected but not used for authentication (Bountysource). These are implemented in a very WET way and we need to DRY it up. This is an old pull request from @LyndsySimon that I brought over from his fork into a branch on the main repo so we can bring more hands on deck.