Replace ExactArcGraph with faster PlanarArcGraph and friends

This ideally would have been broken into several smaller commits, but a lot of arc csg code had crisscrossing dependencies
* Moved various flags and enums for arc csg into exact/circle_enums.h and cleaned up some unused code
* Make SConstruct variables able to accept lists from the command line
* Quote install_name when generating compiler arguments in SConstruct to handle paths with spaces or other special characters
* Fix missing typecast in Array<T>::exact_resize and use std::copy
* Make Field<...>::extend take an array argument instead of a field (Conceptually, extending with a field shouldn't work since it doesn't preserve ids)
* Update TriangleTopology to match new argument types in Field::extend
* Add a default constructor and offset_range to NestedField
* Split IdSet (from VertexSet) into its own file at geode/utility/IdSet.h
* Add implementation of atan for Interval arguments
* For Vector<T,N>, make size method a constexpr and add an empty() method (should probably mark a lot of other methods as constexpr at some point in the future)
* Make ids include a prefix character (mostly to make debugging output easier to read)
* Add overloads for id_range(const Id lo, const Id hi) and id_range(int lo, int hi)
* Faster implementation of ComponentData initialization using UnionFind
* Faster implementation of compute_winding_numbers
* Add unit tests for circle offsets
* Add ExactHorizontalArc
Merge branch 'master' of github.com:otherlab/geode