Separate github data collection and model creation

Without this patch the github API methods are directly creating database
model instances.  This is a problem because we need to change the
behavior of the database storage without changing how the data is
collected from Github.
Update from_github method to avoid duplicates

Prior to this commit, the way from_github was written was producing
duplicate entries in the database. Obviously, that's not the desired
behavior.

This patch fixes that issue.