rename writeBindings -> writeThemBindings because rm -f writeBindings complains about WriteBindings directory on osx
refactor most everything

- drop the ThreeVec nonsense, giving more uniform types
- treat marshaling recursively instead of treating vec<vec> differently for example
- lots of little cleanups
- big cleanup of Marshal/WrapReturn classes, lots less special cases