Multithreaded ctx_clean and associated functions

ctx_clean.c:
- made multithreaded with two-step:
  1. mark graph with multiple threads, then merge threads
  2. clean graph with multiple threads (using prune_nodes.c)

supernode.c:
- make supernode_write_len_distrib() multithreaded

prune_nodes.c:
- prune_nodes_lacking_flag() is now multithreaded