Some changes to exception messages...Making them more consistent
Removed a couple useless messages that were included in UnsupportedOperationException's
Fix some spelling errors in the javadocs
Fix for unit test failure
Fix to ExceptionUtils.handleException when thread has an UncaughtExceptionHandler set
Previously we would automatically default to the defaultUncaughtExceptionHandler.  This changes it to use the more java designed way, by requesting the uncaughtExceptionHandler that is set for the thread (which will default to the group if none is set, which may eventually default to the defaultUncaughtExceptionHandler).  If none are set, then it will ultimatly print to std error like we were doing previously.  Long story short, java was doing the heavy lifting for us.
Adds "ConfigurableThreadFactory", this allows us to reduce duplicated code as well as provide more functionality for others.
We had a couple inner classes which could be replaced by this implementation.  This implementation also has more configurable options that users can easily take advantage of (instead of having to make their own ThreadFactory implementations).
2.3.0 Release!
Updated versions to 2.4.0-SNAPSHOT for future development
Merge branch 'master' into reduced_string_duplication

Conflicts:
	src/main/java/org/threadly/concurrent/AbstractExecutorServiceWrapper.java
	src/main/java/org/threadly/concurrent/AbstractSubmitterScheduler.java
	src/main/java/org/threadly/concurrent/ExecutorWrapper.java
	src/main/java/org/threadly/concurrent/NoThreadScheduler.java
	src/main/java/org/threadly/concurrent/PrioritySchedulerWrapper.java
	src/main/java/org/threadly/concurrent/ScheduledExecutorServiceWrapper.java
	src/main/java/org/threadly/concurrent/SingleThreadScheduler.java
	src/main/java/org/threadly/concurrent/TaskExecutorDistributor.java
	src/main/java/org/threadly/concurrent/TaskSchedulerDistributor.java
	src/main/java/org/threadly/concurrent/limiter/SimpleSchedulerLimiter.java