Unfold Feedback Request 2 - NOT FOR MERGE

#### Major Changes

Interfaces that define unfoldable edges and faces for topology generation

Graph algorithms made generic - downside is they can no longer be used in dynamo with zero touch and they might have use besides unfolding.

Use of Atan2 function to get angles > 180 degrees in align planar function

####additions 
Creation of a project included in  Dynamo core that exposes some methods  - this is to get around zero touch importing bug. UnfoldFaceList(), UnfoldSurfaceList(), Tesselate Surfaces(), BFS(), UnfoldViaTesselation()

Addition of test project, tests full unfoldings of simple solids, tests graph generation, and tests pair coplanar rotations of all faces that share edges.

#### bad stuff

Still have not addressed @Pboyer 's concern for equating curves and edges by using hash code based on ToString() of point representation.  This has been made explicit with custom comparator interface, and spatially equatable interface.

Current implementation uses BFS  as the method for finding an unfolding tree.  Have been researching methods for minimizing resultant overlaps, can try minimizing total needed angle to fold along edges.  Another idea is to use Prim's algorithm to generate random spanning trees and turn it into a local search problem to minimize # of overlaps in resulting unfold.

![screen shot 2014-07-28 at 10 24 26 pm](https://cloud.githubusercontent.com/assets/508936/3740825/97bab452-1759-11e4-8240-feaca4bb0780.png)
![screen shot 2014-07-28 at 10 28 09 pm](https://cloud.githubusercontent.com/assets/508936/3740826/97bef01c-1759-11e4-9fc5-3cbad9bc7dec.png)
![screen shot 2014-07-29 at 3 57 32 pm](https://cloud.githubusercontent.com/assets/508936/3740941/9e24eb72-175a-11e4-9b18-224e65c162d7.png)
![screen shot 2014-07-26 at 10 39 58 pm](https://cloud.githubusercontent.com/assets/508936/3740943/a391cf94-175a-11e4-8906-11b819654be0.png)