Early strands work w/ lists - leaning towards defining R's built on lists.

Pushed forward a little in the strand section, defining some things as
TPaths (PredPaths, EdgePaths, etc…). Currently this means EdgePath is
not a (relation Node), but a (list Node -> Prop). I'm considering
making it a (relation Node) s.t. if there exists an appropriate TPath R
x :: l ++ [y] then EdgePath x y (and similar). This definition would
still rely on the physical paths, and would also be able to use the
default definitions of things like reflexivity, transitivity,
antisymmetry, etc… Anyway, I'm leaning towards this latter direction as
being the best way at the moment. Will think about it and play with it
more.

The alternative would be to redefine Transitivity, AntiSymmetry, etc…
in terms of TPaths or similar (see TPath_Transitivity in util.v as a
possible example). This sounds bad ("redefining! Oh no!") but
realistically I was redefining these relations previously to get them
to be parameterized over a specific set of Nodes anyway (the standard
definitions of relational operators are all universal, and provide no
intuitive way to hook them up to a system that is only working with a
finite set of elements) - That being said, I'm still, as I mentioned
above, leaning towards not doing this and instead using the lists
basically to define transitive closure.