Support for locking / unlocking input file

This file lock is used to minimally serialize the creation of tasks from the
task graph file (i.e., deserialization).  This would permit a task graph to
be accessed in parallel.
Add a critical path length of each basic block as part of information

Compute the critical path (in IR ops) for each basic block.  This provides
some estimate of both the length of the basic block as well as the ILP of
the block.
Support for ILP / critical path length in basic block information
(trivial) Switch to pre instead of post increment
Code cleanup in Contech runtime

Removed experimental 'pos' functions.  Removed experimental allocation methods.
Further cleanup in background thread writer
Setting attributes on functions in runtime

This work attempts to find further performance gains in the Contech runtime
via additional information to the compiler.  What we find is that the compiler
often makes different decisions than expected.  There were no measurable gains
from these changes and several significant regressions.
Revert "Further cleanup in background thread writer"

This reverts commit a79f5cdffb9665d4ae0e085b35a0e33a64a5b310.
Revert "Setting attributes on functions in runtime"

This reverts commit baf2b7383cd5582107e0f556a76a6918eade37a1.
Revert "Revert "Further cleanup in background thread writer""

This reverts commit 6c6fd1c03d347acbd9110efb88b90a50804fd20a.
Begin switch to using TaskGraph::getTask*() named functions