Replaced MessageQueues with QueueConfiguration.
Allowing for arbirtrary groups of (peer,trigger) to be processed in parallel.
(implemented configurations for SingleQueue,PerPeer,PerTrigger)

TODO: workers are currently repeatedly polling their queue for new
messages. The waitForMessage logic needs to be reworked for engines with
multiple workers.
Another iteration of the parallel engine

Allows for workers to manage more than one queue
Implemented proper thread sleep/wake behavior for workers
TODO:
  - Gracefully terminate simulation mode when all queues are empty
  - Add options to Driver for parallel mode (currently hardcoded)
fixed termination for multi-worker simulation mode

TODO next: implement manual termination from the console
Pre-Merge with Master.

Parallel engine mostly complete, with hooks to kill/terminate workers that need to be hooked into a console
Merge branch 'focus/parallel-engine'
Merge branch 'master' of https://github.com/DaMSL/K3-Core