Refactor downloading

@sgrinich, @harrise This stuff is finally finished, I'll go ahead and merge it once you guys figure out how to get the Google Maps framework properly added to the project. 
On the assignment page, Jeff *explicitly* says ["I do not intend to install any new tools on my test computer, so if you're using external libraries, they should be included in your repository."](http://www.cs.carleton.edu/faculty/jondich/courses/cs342_s14/assignments/assignment11.html)