Apply vector type system described in #237
Cleanup readme
Use primitive equals algorithm