fixed scheduler

resolved a severe performance bug in the
scheduler. It is now used by default.
Additionally the scheduler algorithm now
efficiently calculates egligible instructions
reducing the algorithmitic complexity from
O(N^2). Duplicate removal which was then
the dominant time sink (again O(N^2)) has
also been reduced to O(N) complexity through
use of a hash table for quick searches.
different example in main
Merge branch 'jit'