Implement a thread safe resource repo
Add Log4J and SLF4J to project
Add some logging to the executor and Jsoup loader impl
Update executor based crawler to accept the executor service

Now we can shutdown the executor pool.
Update executor based crawler to accept the executor service

Now we can shutdown the executor pool.
Refactor multi threaded crawler classes into seperate package

1) Moved mult threaded crawler classes and tests into 'multithreaded' sub-package
2) Add isComplete flag to executors, triggered when the scan is completed
Create an active executor monitor that will track pending executors
Complete the monitor for the crawler to shut it down

Add a monitor to the crawler to shut it down when no more active executors are created (ie, no more resources to scan).
Add better synchronization around checking/adding to set of executors
Merge branch 'feature/add-executor-monitor' into develop
Clean up run method by breaking into smaller methods
Better integrate the crawler and monitor when checking for executors

1) Implement the shutdown() method in the crawler to shutdown the executor pool
2) Add a polling interval to the monitor so you can control how long to sleep between active executor checks
Rename crawler register method to crawl
Create a reporter object and made it a dependency for scanning
Update shutdown to call reporter to generate a final report
Complete wiring reporter with gatherers into the scanner
Implement a broken link stats gather
Monitor names the monitoring thread it spawns
Create a crawler builder to simplify creating and configuring a crawler
Update crawler to provide access to the report after crawling is completed