Refactor scraper to move from index-based to content-based scraping

This commit is a pretty major rewrite. The old way was to go through the
subjects and courses by index. If something was ever added/removed
mid-scrape, data could get incredibly scrambled.

This refactor switches things up by iterating over everything by index (using
the `start`, `stop`, and `end` config options) when initially loading the page
and grabbing a `_unique` attribute (raw text off SOLUS that can be searched)
for everything it sees. It then iterates over the list of `_unique`s instead
of by index. This ensures that even if data is moved around mid-scrape, the
scraper will be able to find the correct data (or at least it won't find
data it isn't looking for).