indentation
added to_lower and to_upper for strings
array: Add a few more reshape_own overloads
make bezier input fusing based on bez box size with fairly reasonable tolerance
fixed bezier sampling size mismatch when forces samples are too close to the end of the curve
better file extension checking for image read
TriangleTopology: Add a mutate function (copy and make mutable)
Add repr for string
Add mesh I/O for .stl, .obj, .ply, and .x3d

Only writing to .x3d is supported for now.
Update README.md to reflect command line vs config.py flags
fixes for geode under gcc
python/wrap_call: Fix gcc compile issue
array/test_stencil: Make reasonably fast
utility/config: Avoid compiler crash with clang
BoxTree: Remove some unused code
Optimize field storage for meshes, plus various small tweaks

Fields in meshes are now stored using the new UntypedArray class,
which is ABI compatible with Array.  This allows holding references
to fields that persist across mesh topology changes, as long as no
new fields are added or removed.

In addition, this commit includes the following minor tweaks:
1. Properties on meshes are called fields to match the Field type.
2. The permute routines have been pulled out into a permute.h header.
3. Improve numpy rank-mismatch errors
4. Fix repr for '\0'
Add constraint support to delaunay_points
Segment: Add a sqr version of segment_point_distance
Hashtable: Add from_python support
bin/fix-various: Fix syntax error