initial
version 1 basically working
Changed tree storage so that all nodes hold all connections in one set.
This way the interpretation of root, leaf, parent, child are easy
to define as needed.

Also semi-randomized the breadth-first-expansion to avoid unnatural patterns.

Added return value structure - list of trees with each tree being
a family identifier plus a list of end points
bugfix - was not adding source point into list of connections. New way
tracks the source when queueing so it is simple to include it.
started investigation of how to prune intelligently. Traversal, leaf
heights, ...
added some test images
added pretty effective pruning algorithm. works well enough for line-type
regions but needs to be improved for area-type regions.
Replaced limited-range neighbor testing of end points to a BFS from
each end point. Currently it is overzealous but really cleans
up entire graph into simple paths. Just need to turn it down a little.
Replaced pruning method and implemented required tree parts for it.\
It's inefficient but effective. Results in agreeable paths for all test
images.
After seeing too much tree traversal during pruning taking a lot of time,
greatly improved efficiency and total time by making the pruning a greedy
process. Also removed unnecessary randomization during pruning.

E.g. For the 'fat.png' image, analysis on this computer went from
120 seconds to 2 seconds.
Improved correctness of pruning algorithm by comparing pixels by their
height in the graph (rooted at one end of the longest path in the graph)
rather than comparing them by their depth. Height indicates how much
longer each branch is (what we want) vs. depth showing how long it is
*so far* which was ok but not really correct.
clean up documentation and notes
added option to work on some families instead of all.
Added result images.
renamed to match repo
Merge branch 'master' of github.com:kobejohn/pixeltree