Adds lazy-loading League scraper

While LeagueScraper still returns a Hash, LeagueScraper is now designed to be called through a
Profile object.  Create the Profile, ask for Leagues, and if you want more information on a
League, that doesn't come from scraping the profile page, you call `scrape_league` or attempt to
access information not stored already.