Basic Github Integration

I highly recommend a complete db drop, create, migrate, seed cycle after merging/pulling down this pull request. I changed and implemented so much crap with this branch that I honestly don't remember it all, but you can follow it through the commit messages below as they're usually pretty good about being descriptive of what was done. 

Some highlights:
* Users can link their user account with their github account
* Users can login to app using their github account via omniauth once linked
* Break out github info into separate db table for github_profiles
* Implement handling of webhooks from github for pull requests and issues
* Creates new assignments from a new github issue being opened on a repo that is added to a cohort
* Creates a new answer from a pull request that is opened on a repo that is added to a cohort if it uses id tag
* Updates breadcrumbs to be more dynamically built
* Cleans up lots of code throughout, but also adds quit a bit of smelly code as well

Some of the code isn't the cleanest and is in serious need of cleaning. Especially around the views.
This whole method is commented out and will likely be ripped out alltogether, but tap allows you to work with an object and then return that object. Since this method is overriding an original method calling tap on super will run the original method, return the results of it to our new method here as an object, and then allow us to continue working with it, and then return that object at the end. 

This SO post has some additional explanation if that doesn't make sense: http://stackoverflow.com/questions/5103714/super-tap-what-does-it-do-and-use-cases