Add support for tree agglomeration
Add missing rename_node function
Bug fix: mistyped 'qitem' instead of 'qlink'
Update tests for tree agglomeration
Add function to remove merged boundaries
Remove merged boundaries when getting segmentation
Major bug fix: peek only at valid queue items

MergeQueue.peek() was designed to look at the next item in the merge
queue without popping it. However, the next item *could* be invalid,
and cause a merge of a valid item past threshold!

This commit fixes that by having peek() discard invalid items until a
valid one is at the front of the queue.
Change feature testing to use update node ids
Update RIG creation to use watershed, not segmentation
Update refine_post_merge_boundaries to use tree agglo
Bug fix: reset tree height after ladder agglo
Change call order for tree merge

Tree merging was causing the sp2segment map to be incorrect when the
merge boundaries were being refined. Postponing the merge until after
boundary refinement fixes the issue.
Update contingency table to allow sequential node renaming
Update tests to allow 1-1 matching of segmentations
Update region intersection graph during merge

The region intersection graph allows quick computation of current VI
and rand index during an agglomeration run.
Update requirement to viridis 0.2
Update default RIG length when no ground truth

I doubled the size of the contingency table, but when there is no
contingency table, I hadn't doubled the size of the ones() array,
resulting in an IndexError. This is now fixed.
added optimized.pyx for Cython, and tests for its functions
added missing kwarg to classify.py function
modified imio.read_h5_stack to not fail with kwargs for other imio functions