Converts to own Pool interface to separate the implementation of the pools
Working towards a different pool implementation
Merge branch 'master' into working
Redoes the pool handling. Now the caching is handled with guava caches rather than hashmaps. Also there are now two interchangable pooling implementations.
Includes a dummy pool implementationn which shows that they don't make much of a difference...
Renames test to match the class it is testing
Adds submatrix methods to IntMatrix
Cleans up the submatrix code a bit
Adds some threding helper type stuff. Not sure if anything works yet.
Starts converting tasks to MatrixTasks
Add check for whether a matrix is finite. This first tries the fast way to see if infinite, then checks the full mutation class if not
Fixes some CheckStyle warnings.
Fixes scope problems with generics
Adds generics support to RunOnSubmatricesTask.

Thinks that this should also be changed a bit, so that the running code is separated from the submitting tasks code.
Cleans up FiniteCheck a bit and adds cached instances of its sub tasks. Also adds factory for it.
Working on test to see if all sub matrices are mutation finite. So far only works sporadically.
Adds infinite matrix to the mutation class size tasks.
Fixes problem with checking all submatrices, but not in a very good way.

Need a better way to interrupt waiting on the queue, as interrupting the thread causes problems
Fixes problem with the task to run on multiple matrices. Now all tests pass reliably.
Moves the enlarge matrix method to IntMatrix, as it does not depend on any of the extra Quiver structure