Add getter and setter for individual options

Also add an ‘unsetter’ for individual options.

All of these three methods accept keys defined with ‘dot’ notation.
Remove ability to pass options to scrape() method

The option setters can be used instead.
Tweak comment formatting
Add abstract method `getProviderArguments()`

This is defined on the abstract scraper. This commit also brings implementations of the method for the two children scrapers.
Define charset of scraped documents as a property
[refactor] Extract logic to AbstractScraper

The abstract scraper will now get the HTML document by itself.
It will also create the initial crawler and fill it with the HTML source it has downloaded.

Moreover, `scrape()` methods will not directly check scraping options anymore.

All of this removes redundancy and makes the codebase more modular.