checkpoint commit. it compiles, but is untested
move vector code to separate  module
Add a method on Vector2 that returns a zero vector