Don’t sort constraints each time
Created a threaded SolutionGenerator

Creates and validates potential solutions via a separate thread and 
maintains two queues of potential solutions—one where the solutions
satisfy the Constraints checker and one where the solutions don’t. When
the solver is looking for a potential solution, priority is given to
the queue that contains the valid solutions.  If that is empty, then
the other queue is consulted.  This ensures the solver should never
have to wait for a potential solution.
Reset the timer in Agent so stats are correct
Merge branch 'feature/generator' into dev
Update CONOP9Repository to work with URLs
Update Riley examples to use data hosted at Github
Merge branch 'feature/url' into dev
Bump version to 0.11.3