Refactor the core allocation interface into separate classes that implement a specific allocation policy. All previously added allocation functions have been removed from scheduler.cpp. All allocators will implement an AllocateCoresForLoop() function, which the simulator will call.
Refactor the core allocation interface into separate classes that implement a
specific allocation policy. All previously added allocation functions have been
removed from scheduler.cpp. All allocators will implement an
AllocateCoresForLoop() function, which the simulator will call.

A few unit tests have been added for the penalty policy allocator.

s-kanev/XIOSim,s-kanev/XIOSim,s-kanev/XIOSim,s-kanev/XIOSim