Bug fixes to help sequencer handle unbuffered inputs (fixes #34)

Utils:     Now performs fuzzy match using haversine instead of euclidean.
             Performs second pass over matched data, retaining only the
             closest match
NetworkPlan: Network to dict can now handle roots with no children.
	     Fake nodes test is now abstracted into a function call,
             network plan also builds a fake nodes attribute.
             Adds an error log in the case that there are edges less
	     than .5 meters, as this can lead to bad joins.
Sequencer:   Sequencer will now sequence nodes with no children, as
	     long as they are not fake nodes.
	     Computing the upstream distance is abstracted to a function
	     call.