Change some private visibility of variables to protected
These variables are primarily static/final's, and are save to have access to.  By being protected it might make it easier for some people to extend these classes if needed.  I still prefer that if people need to extend them they file a github issue so we can understand their needs.  In any case I am a firm believer in giving people options.
Moved this "ThreadIterator" anonymous inner class to just an inner class
This provides a performance benifit by not needing to re-build the thread array each time, instead we can reuse a previous array.  This can be very useful when there is a very large thread count.
This also allowed for better unit testing on this functionality.
Some fixes to the pom.xml (which was very out of date)
Some small code cleanup in the Profiler
I reduced the usage of access to the private variables inside the inner classes.  Instead I defined protected functions which describe how those variables should be manipulated.  This makes the code cleaner, and easier to extend if needed.
Merge remote-tracking branch 'origin/master' into experimental-PriorityScheduler_seperate_queues

Conflicts:
	src/main/java/org/threadly/concurrent/PriorityScheduler.java
	src/main/java/org/threadly/concurrent/PrioritySchedulerServiceWrapper.java