SolverAgent:
 - Adds extra seconds per task remaining instead of accurate numbers

TaskAdministrator:
 - Added functions to handle flow
 - handleSolvedExpression(): checks if we're expecting a solved expression from a sender and parses the result into a double. Currently does not actually replace expression with answer
 - declareWinner(): Once all proposals have been received we declare a winner by accepting the best proposal and rejecting others. Then we may move on to the next expression that does not rely on the current expression being solved?
 - auctionJob() now sends out a CFP to all solvers at once.
 
TestTA:
 - Added a small loop for testing purposes.
SolverAgent:
 - Adds extra seconds per task remaining instead of accurate numbers

TaskAdministrator:
 - Added functions to handle flow
 - handleSolvedExpression(): checks if we're expecting a solved expression from a sender and parses the result into a double. Currently does not actually replace expression with answer
 - declareWinner(): Once all proposals have been received we declare a winner by accepting the best proposal and rejecting others. Then we may move on to the next expression that does not rely on the current expression being solved?
 - auctionJob() now sends out a CFP to all solvers at once.