Updated ctx_supernodes to use new supernode iterator

ctx_supernodes.c:
- replaced custom supernode iteration with multithreaded supernode_iterate
- replaced custom cmdline parsing with getopt_long()

supernodes.c:
- fixed possible multithreading bug in supernode_iterate. Supernode may be
  fetch in any of two orientations, so we need to pick the lowest node to use
  as the 'supernode lock'. Bug is fixed by comparing the first and last node.
  Note: this is not the same node ordering as supernode_normalise() uses -
        it uses kmerkey comparisons. Additionally we do NOT re-orient the
        supernode so that the first node is the 'supernode lock'.

ctx_alloc.h:
- improved comments, removed unused function declaration